当我去跑步时
from datetime import *; from dateutil.relativedelta import *
从python脚本我得到一个错误,这对我来说似乎表明模块本身存在问题。
Traceback (most recent call last):
File "C:\Users\Tom\Documents\datetime.py", line 1, in <module>
from datetime import *
File "C:\Users\Tom\Documents\datetime.py", line 2, in <module>
from dateutil.relativedelta import *
File "C:\Users\Tom\AppData\Local\Programs\Python\Python35\lib\site-packages\python_dateutil-2.0-py3.5.egg\dateutil\relativedelta.py", line 11, in <module>
import calendar
File "C:\Users\Tom\AppData\Local\Programs\Python\Python35\lib\calendar.py", line 47, in <module>
class _localized_month:
File "C:\Users\Tom\AppData\Local\Programs\Python\Python35\lib\calendar.py", line 49, in _localized_month
_months = [datetime.date(2001, i+1, 1).strftime for i in range(12)]
File "C:\Users\Tom\AppData\Local\Programs\Python\Python35\lib\calendar.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中使用完全相同的语句时,如果在shell中使用它完美地工作,则不会发生这种情况。
我确实发现它与dateutil的relativedelta部分直接相关,如
from dateutil import *
工作正常。
我已经尝试重新安装dateutil,但几乎就是这样。
如果重要的话,使用dateutil 2.0运行python 3.5.1。
编辑:抱歉我是个IDIOT,我的文件名为datetime.py,这是导致问题的原因。
答案 0 :(得分:2)
我相信它是源文件名。我猜测当python解释器试图找到datetime模块时,它将首先搜索本地目录,而datetime模块将是你的源文件而不是datetime全局包。 this post explains more
一旦您将文件重命名为dd.py而不是&#34; C:\ Users \ Tom \ Documents \ datetime.py&#34;它应该成功。