【问题标题】:Module pytz was already imported模块 pytz 已经导入
【发布时间】:2011-11-06 13:25:50
【问题描述】:

我在运行 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 导入资源流

这是什么意思,我该如何解决?

【问题讨论】:

    标签: python import pytz


    【解决方案1】:

    您已将软件包安装在 pytz.egg 中。删除.egg,您将不会收到警告。

    但是,请注意,它被称为“虚假警告”——这实际上不是问题,但如果两者不同,它可能会成为一个问题。

    【讨论】:

      【解决方案2】:

      来自the Python bugtracker issue

      看来,这方面的虚假警告的一个重要来源是 pkg_resources 在鸡蛋中找到其他模块之后导入。这可以通过更改来解决 insert_on() 方法仅在没有分发时检查冲突 已经在 sys.path 上。换句话说,如果您要重新添加一些 已经存在,没有必要多次收到警告。


      要查看导入的情况,只需编写此脚本并检查输出。 它可以为您提供一些有用的信息:

      import sys, setuptools, pkg_resources
      print sys.path
      print pkg_resources.__file__
      print setuptools.__file__
      

      【讨论】:

      • 这看起来像是一种解决方法,而不是解决方案。我想知道一个合适的解决方案是否只能来自 Python 实现本身
      • @agf - 忽略警告?!那是baaaad实践... :)
      • @agf - 有效:) 将其添加到答案中,我会接受它
      • 完成。删除我过时的 cmets。
      【解决方案3】:

      我遇到了以下问题:

      /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安装。

      【讨论】:

      • 我也遇到过类似的情况,我用 pip uninstall pytz 解决了
      猜你喜欢
      • 2017-03-05
      • 1970-01-01
      • 2011-08-17
      • 1970-01-01
      • 2020-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多