我遇到了一个有趣的问题。当我在命令行上运行python并尝试导入“请求”时,我发现以下错误。
Python 2.7.5 (default, Sep 12 2013, 21:33:34)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests
Difference is 23 hours and 15 minutes.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/requests/__init__.py", line 53, in <module>
from .packages.urllib3.contrib import pyopenssl
File "/Library/Python/2.7/site-packages/requests/packages/__init__.py", line 3, in <module>
from . import urllib3
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/__init__.py", line 16, in <module>
from .connectionpool import (
File "/Library/Python/2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 9, in <module>
import logging
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/__init__.py", line 94, in <module>
_startTime = time.time()
AttributeError: 'module' object has no attribute 'time'
>>>
我把这个名为time.py的脚本放在与我运行python的目录相同的目录中。该脚本已被删除。但我仍然看到该脚本的输出&#34;差异是23小时15分钟。&#34;当我尝试导入模块时。但是,如果我更改目录并尝试导入模块,它就可以正常工作。我只是觉得这很奇怪。有什么想法可能会发生这种情况吗?
答案 0 :(得分:4)
您必须仍然拥有time.pyc
文件,其中包含上次(现在缺少的)time.py
编译时生成的字节码。
导入模块时,Python会查看是否存在该模块的现有.pyc
文件,如果其日期比相应的.py
文件更新,则会加载包含在其中的字节码那个文件。
删除它,事情应该按预期工作。
有关详细信息,请参阅python文档中的here。