2015-12-06 36 views
-2

导入小数模块时,是什么原因导致的类型错误?类型错误时导入Python的十进制模块

[[email protected] MyScripts]$ cat decTest.py 
from decimal import * 

#item = Decimal(0.70) 
[[email protected] MyScripts]$ python3.3 decTest.py 
Traceback (most recent call last): 
    File "decTest.py", line 1, in <module> 
    from decimal import * 
    File "/usr/local/lib/python3.3/decimal.py", line 433, in <module> 
    import threading 
    File "/usr/local/lib/python3.3/threading.py", line 6, in <module> 
    from time import sleep as _sleep 
    File "/var/www/python/ineasysteps/MyScripts/time.py", line 3, in <module> 
    today = datetime.today() 
TypeError: an integer is required (got type datetime.time) 
[[email protected] MyScripts]$ 

回答

3

您在自己的文件夹中有一个名为“time.py”的文件,它与内置时间模块冲突。注意在堆栈跟踪中它是如何显示需要导入“时间”的线程模块的。

重命名“time.py”的东西,是不一样的名称作为内置模块。

+0

感谢布莱恩,我明明很新的Python的。我现在看到十进制是如何导入进口时间的线程。 Python总是会尝试使用当前目录中的文件吗?我如何防止这种情况? – user1032531

+0

@ user1032531:看https://docs.python.org/3.5/tutorial/modules.html#the-module-search-path,或搜索“[蟒蛇]模块搜索路径”这里的计算器。 –

+0

所以'时间'不是'内置模块'?否则,它应该被每'使用时一个名为垃圾邮件导入模块,与该名称的内置模块解释首先搜索。如果找不到,它会在变量sys.path给出的目录列表中搜索名为spam.py的文件。 sys.path中从这些位置初始化:' – user1032531