Python。 from dateutil.relativedelta import * 在 shell 中有效,但在脚本中无效
Python. from dateutil.relativedelta import * works in shell but not in a script
当我去运行
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,但仅此而已。
运行 python 3.5.1 和 dateutil 2.0 如果重要的话。
编辑:抱歉,我是个白痴,我的文件名为 datetime.py,这就是导致问题的原因。
我相信这是源文件名。我猜当 python 解释器试图找到 datetime 模块时,它会首先搜索本地目录,而 datetime 模块将是您的源文件,而不是 datetime 全局包。 this post explains more
一旦您将文件重命名为 dd.py 而不是 "C:\Users\Tom\Documents\datetime.py",它应该会成功。
当我去运行
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,但仅此而已。
运行 python 3.5.1 和 dateutil 2.0 如果重要的话。
编辑:抱歉,我是个白痴,我的文件名为 datetime.py,这就是导致问题的原因。
我相信这是源文件名。我猜当 python 解释器试图找到 datetime 模块时,它会首先搜索本地目录,而 datetime 模块将是您的源文件,而不是 datetime 全局包。 this post explains more
一旦您将文件重命名为 dd.py 而不是 "C:\Users\Tom\Documents\datetime.py",它应该会成功。