2012-09-11 188 views
2

我使用的版本是python2.7,当我使用脚本时发生错误,但它在命令行中起作用。导入模块失败

from twisted.internet import protocol, reactor 

和错误:

ravjqpejcnngpig.eqo/re/fgh/ocr 
Traceback (most recent call last): 
    File "./tsTclntTW.py", line 5, in <module> 
    from twisted.internet import protocol, reactor 
    File "/usr/local/lib/python2.7/dist-packages/twisted/__init__.py", line 18, in <module> 
    from zope.interface import Interface 
    File "/usr/local/lib/python2.7/dist-packages/zope.interface-4.0.1-py2.7-linux-x86_64.egg/zope/__init__.py", line 3, in <module> 
    import pkg_resources 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 698, in <module> 
    self.callbacks.append(callback) 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 701, in Environment 

    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 96, in get_supported_platform 
    distutils.util.get_platform() normally reports the minimum version 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 222, in get_build_platform 
    # fallback for MacPorts 
    File "/usr/lib/python2.7/distutils/util.py", line 65, in get_platform 
    osname = string.lower(osname) 
AttributeError: 'module' object has no attribute 'lower' 
Error in sys.excepthook: 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 64, in apport_excepthook 
    from apport.fileutils import likely_packaged, get_recent_crashes 
    File "/usr/lib/python2.7/dist-packages/apport/__init__.py", line 1, in <module> 
    from apport.report import Report 
    File "/usr/lib/python2.7/dist-packages/apport/report.py", line 18, in <module> 
    import problem_report 
    File "/usr/lib/python2.7/dist-packages/problem_report.py", line 16, in <module> 
    from email.mime.multipart import MIMEMultipart 
    File "/usr/lib/python2.7/email/mime/multipart.py", line 9, in <module> 
    from email.mime.base import MIMEBase 
    File "/usr/lib/python2.7/email/mime/base.py", line 9, in <module> 
    from email import message 
    File "/usr/lib/python2.7/email/message.py", line 16, in <module> 
    import email.charset 
    File "/usr/lib/python2.7/email/charset.py", line 14, in <module> 
    import email.quoprimime 
    File "/usr/lib/python2.7/email/quoprimime.py", line 48, in <module> 
    from string import hexdigits 
ImportError: cannot import name hexdigits 

Original exception was: 
Traceback (most recent call last): 
    File "./tsTclntTW.py", line 5, in <module> 
    from twisted.internet import protocol, reactor 
    File "/usr/local/lib/python2.7/dist-packages/twisted/__init__.py", line 18, in <module> 
    from zope.interface import Interface 
    File "/usr/local/lib/python2.7/dist-packages/zope.interface-4.0.1-py2.7-linux-x86_64.egg/zope/__init__.py", line 3, in <module> 
    import pkg_resources 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 698, in <module> 
    self.callbacks.append(callback) 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 701, in Environment 

    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 96, in get_supported_platform 
    distutils.util.get_platform() normally reports the minimum version 
    File "/usr/local/lib/python2.7/dist-packages/setuptools-0.6c11-py2.7.egg/pkg_resources.py", line 222, in get_build_platform 
    # fallback for MacPorts 
    File "/usr/lib/python2.7/distutils/util.py", line 65, in get_platform 
    osname = string.lower(osname) 
AttributeError: 'module' object has no attribute 'lower' 

我已经重新安装了Python我使用,它不工作,我在Ubuntu 12.04。我也有

grep ravjqpejcnngpig.eqo/re/fgh/ocr . -R -n 

根据/usr/lib/python2.7但没有返回。

+0

'ravjqpejcnngpig.eqo/RE/FGH/ocr'看起来像'tsTclntTW.py输出',这与你的错误没有任何关系。它是Python挑战的一部分,你似乎在做这件事。 –

+0

@MatthewTrevor是的,把我自己的脚本命名为'string.py'是很愚蠢的。事实上我正在做Python挑战。 – kyon

回答

4

也许你在你的项目中有一个名为string的模块,它会遮盖相同名称的库模块。


编辑:为了找到答案,只是失败的import语句之前添加到您的脚本:

import string 
print string.__file__ 
+0

不,我没有输入字符串 – kyon

+3

@kyon确定吗?追踪几乎*大声说'string'模块不是stdlib'string'模块。仔细检查你的目录中是否运行了这个,没有'string.py' –

+0

@JonClements是的,我在我的目录中找到了一个string.py。非常感谢! – kyon