模块 pytz 已经被导入
我在运行Python代码时总是遇到以下错误:
C:\Python26\lib\site-packages\pytz\__init__.py:32: UserWarning: Module pytz was already imported from C:\Python26\lib\site-packages\pytz\__init__.pyc, but c:\python26\lib\site-packages\pytz-2011h-py2.6.egg is being added to sys.path from pkg_resources import resource_stream
这个错误是什么意思,我该怎么解决呢?
3 个回答
0
我遇到了以下问题:
/Users/rkiko/anaconda/lib/python2.7/site-packages/pytz/__init__.py:29: UserWarning: Module pytz
was already imported from /Users/rkiko/anaconda/lib/python2.7/site-packages/pytz/__init__.pyc, but
/Library/Python/2.7/site-packages is being added to sys.path
from pkg_resources import resource_stream
我把 /Users/rkiko/anaconda/lib/python2.7/site-packages/ 里的整个 pytz 文件夹删除了,这样问题就解决了。这样只剩下一个 pytz 包了。这个解决办法和上面 agf 的方法类似,但在我的情况下,干扰我的不是一个“蛋”(egg),而是第二个 pytz 的安装。所以,检查一下你是否有两个安装版本,删除掉那个不是系统自带的 Python 安装的。
2
来自 Python的错误追踪系统:
看起来,产生很多无用警告的主要原因是,当在导入其他模块(这些模块通常是打包成egg格式的)之后再导入pkg_resources时。要解决这个问题,可以修改insert_on()方法,让它只在某个分发包不在sys.path中时检查冲突。换句话说,如果你再添加一个已经存在的东西,就没有必要重复收到警告了。
想要了解导入过程中的情况,只需写一个脚本并查看输出结果。这可以给你一些有用的信息:
import sys, setuptools, pkg_resources
print sys.path
print pkg_resources.__file__
print setuptools.__file__
4
你已经在系统里安装了 pytz
这个包,同时还安装了一个 .egg
文件。只要把这个 .egg
文件删掉,你就不会看到那个警告了。
不过要注意,这个警告被称为“虚假警告”——其实这并不是真正的问题,不过如果这两个版本不一样的话,可能会变成问题。