运行 Python 代码时,我不断收到以下错误:
C:\Python26\lib\site-packages\pytz\__init__.py:32: 用户警告:模块 pytz 已从 C:\Python26\lib\site-packages\pytz\__init__.pyc, 但是 c:\python26\lib\site-packages\pytz-2011h-py2.6.egg 正在添加到 sys.path 从 pkg_resources 导入资源流
这是什么意思,我该如何解决?
您已将软件包安装在其中,pytz
并且还作为.egg
. 删除.egg
,您将不会收到警告。
但是,请注意,它被称为“虚假警告”——这实际上不是问题,尽管如果两者不同,它可能会变成一个问题。
看起来,虚假警告的一大来源是 pkg_resources 在鸡蛋中找到其他模块之后导入。这可以通过将 insert_on() 方法更改为仅在分发不在 sys.path 上时检查冲突来解决。换句话说,如果您要重新添加已经存在的东西,那么多次收到警告是没有意义的。
要查看导入的情况,只需编写此脚本并检查输出。它可以为您提供一些有用的信息:
import sys, setuptools, pkg_resources
print sys.path
print pkg_resources.__file__
print setuptools.__file__
我遇到了以下问题:
/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,但在我的情况下,它不是一个令人不安的鸡蛋,而是第二个 pytz 安装。所以,检查你是否有两个安装并删除一个,那不是系统 python 安装。