【问题标题】:Python 2.7 : Pytz : ImportError: cannot import name timezonePython 2.7:Pytz:ImportError:无法导入名称时区
【发布时间】:2015-07-10 10:04:29
【问题描述】:

我在 Suse 13.2 上安装了 Pytz 库:

# python -m easy_install  pytz-2015.2-py2.7.egg
Processing pytz-2015.2-py2.7.egg
Copying pytz-2015.2-py2.7.egg to /usr/lib/python2.7/site-packages
Adding pytz 2015.2 to easy-install.pth file

Installed /usr/lib/python2.7/site-packages/pytz-2015.2-py2.7.egg
Processing dependencies for pytz==2015.2
Finished processing dependencies for pytz==2015.2

我检查了 python 的模块列表:

# python
Python 2.7.8 (default, Sep 30 2014, 15:34:38) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')
...
argparse            heapq               pytz                wsgiref
...

我尝试导入 pytz 库...

>>> import pytz
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "pytz.py", line 2, in <module>
    from pytz import timezone
ImportError: cannot import name timezone

有人知道为什么无法导入这个库吗?

【问题讨论】:

  • 我不确定它是否与您的问题有关。但在docs 中,示例显示了如何进行导入。也许顺序很重要?
  • 只是好奇,为什么要这样安装pytz?为什么不只是easy_install pytzpip install pytz
  • 确保为 python 2.7 而不是 3.x 安装库 ;-)
  • 我尝试了这些导入,但错误相同:from datetime import datetime, timedelta >>> from pytz import timezone >>> import pytz

标签: python python-2.7 pytz


【解决方案1】:

看起来像The name shadowing trap

将您的脚本从 pytz.py 重命名为 test_pytz.py 以避免与 pytz 包冲突。

【讨论】:

    【解决方案2】:

    你没有在你的电脑上安装 Django 吗? 我认为您首先必须安装 Django,然后在 Django 1.4 及更高版本中导入 timze 区域,您可以编写:

    from django.utils import timezone
    

    对于 Django 1.3,您可以使用:

    from datetime import datetime
    

    【讨论】:

    • pytz 是一个独立的 Python 包。 django 可以使用pytz 但与问题无关。
    • 但他的回答对我有帮助,所以 +1。
    猜你喜欢
    • 2019-07-14
    • 2018-11-24
    • 2021-11-26
    • 2018-06-01
    • 1970-01-01
    • 2019-01-16
    • 2017-01-07
    • 1970-01-01
    • 2013-05-13
    相关资源
    最近更新 更多