python2.7因ImportError而失败:在cygwin下没有名为time的模块

时间:2014-09-04 09:55:41

标签: python windows cygwin

我最近在我的Windows 8台式机上安装了cygwin,用于在我的家庭网络中进行网络分析/性能评估

安装后,我使用easy_install失败了:

$ python ez_setup.py
Traceback (most recent call last):
  File "ez_setup.py", line 67, in <module>
    except ImportError: from md5 import md5
  File "/usr/lib/python2.7/md5.py", line 10, in <module>
    from hashlib import md5
  File "/usr/lib/python2.7/hashlib.py", line 141, in <module>
    import logging
  File "/usr/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, collections
ImportError: No module named time

我的分析到目前为止显示cygwin python 2.7无法找到time.dll:

python -vvv
>>> import time
# trying time.dll
# trying timemodule.dll
# trying time.py
# trying time.pyc
# trying /usr/lib/python2.7/time.dll
# trying /usr/lib/python2.7/timemodule.dll
# trying /usr/lib/python2.7/time.py
# trying /usr/lib/python2.7/time.pyc
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named time

但安装了time.dll(但未在搜索的目录中):

$ find /usr/lib/python2.7/ -name "time*"
/usr/lib/python2.7/lib-dynload/time.dll

$ ldd /usr/lib/python2.7/lib-dynload/time.dll
        ntdll.dll => /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll (0x7fff41430000)
        KERNEL32.DLL => /cygdrive/c/WINDOWS/system32/KERNEL32.DLL (0x7fff408c0000)
        KERNELBASE.dll => /cygdrive/c/WINDOWS/system32/KERNELBASE.dll (0x7fff3e970000)
        fshook64.dll => /cygdrive/c/program files (x86)/f-secure/apps/computersecurity/hips/fshook64.dll (0x56640000)
        PSAPI.DLL => /cygdrive/c/WINDOWS/system32/PSAPI.DLL (0x7fff40d40000)
        ADVAPI32.dll => /cygdrive/c/WINDOWS/system32/ADVAPI32.dll (0x7fff405f0000)
        msvcrt.dll => /cygdrive/c/WINDOWS/system32/msvcrt.dll (0x7fff3ef00000)
        sechost.dll => /cygdrive/c/WINDOWS/SYSTEM32/sechost.dll (0x7fff40ea0000)
        RPCRT4.dll => /cygdrive/c/WINDOWS/system32/RPCRT4.dll (0x7fff40a00000)
        libpython2.7.dll => /usr/bin/libpython2.7.dll (0x53bb50000)
        cygwin1.dll => /usr/bin/cygwin1.dll (0x180040000)

希望它与F-Secure无关(我最近在VirtualBox遇到了严重问题)。另外,我必须按如下方式设置环境变量PATH,PYTHONHOME和PYTHONPATH:

export PYTHONHOME=/usr/bin
export PYTHONPATH=/usr/lib/python2.7

export PATH=/usr/local/bin:/usr/bin
export PATH=$PATH:/cygdrive/c/WINDOWS/system32

但没有帮助。将“/usr/lib/python2.7/lib-dynload/”添加到PATH也无济于事。

1 个答案:

答案 0 :(得分:2)

最后我找到了问题的原因:

PYTHONHOME设置为/ usr / bin 在修复并更改为/ usr之后 它现在有效。