Python.从dateutil.relativedelta导入 *在shell中工作,但在脚本中不起作用



我去运行

from datetime import *; from dateutil.relativedelta import *

从python脚本中,我遇到了一个错误,对我来说似乎表明了模块本身的问题。

Traceback (most recent call last):
  File "C:UsersTomDocumentsdatetime.py", line 1, in <module>
    from datetime import *
  File "C:UsersTomDocumentsdatetime.py", line 2, in <module>
    from dateutil.relativedelta import *
  File "C:UsersTomAppDataLocalProgramsPythonPython35libsite-packagespython_dateutil-2.0-py3.5.eggdateutilrelativedelta.py", line 11, in <module>
    import calendar
  File "C:UsersTomAppDataLocalProgramsPythonPython35libcalendar.py", line 47, in <module>
    class _localized_month:
  File "C:UsersTomAppDataLocalProgramsPythonPython35libcalendar.py", line 49, in _localized_month
    _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)]
  File "C:UsersTomAppDataLocalProgramsPythonPython35libcalendar.py", line 49, in <listcomp>
    _months = [datetime.date(2001, i+1, 1).strftime for i in range(12)]
AttributeError: module 'datetime' has no attribute 'date'

但是,当我在python shell中使用完全相同的语句时,如果在壳中使用,则不会发生。

我确实发现它与dateutil的Relativedelta的一部分直接相关,如

from dateutil import *

工作正常。

我尝试重新安装dateutil,但这几乎是。

如果重要的话,请使用dateutil 2.0运行python 3.5.1。

编辑:对不起,我是个白痴,我的文件被称为dateTime.py,这是引起问题的原因。

我相信这是源文件名。我猜想Python解释器试图找到DateTime模块时,将首先搜索本地目录,而DateTime模块将是您的源文件,而不是DateTime Global软件包。这篇文章解释了更多

一旦您将文件重命名为DD.PY而不是" C: Users Tom tom documents dateTime.py",它就应该可以解决。

最新更新