0

我遇到了一个奇怪的 python 模块导入问题。

当我尝试导入锅炉管模块时,

from boilerpipe.extract import Extractor

我得到了这个例外:

 Original exception was:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/boilerpipe-1.2.0-py2.7.egg/boilerpipe/extract/        __init__.py", line 2, in <module>
    import urllib2
  File "/usr/lib/python2.7/urllib2.py", line 94, in <module>
    import httplib
  File "/usr/lib/python2.7/httplib.py", line 1140, in <module>
    import ssl
  File "/usr/lib/python2.7/ssl.py", line 58, in <module>
    import textwrap
      File "/usr/lib/python2.7/textwrap.py", line 40, in <module>
class TextWrapper:
  File "/usr/lib/python2.7/textwrap.py", line 82, in TextWrapper
    whitespace_trans = string.maketrans(_whitespace, ' ' * len(_whitespace))
AttributeError: 'module' object has no attribute 'maketrans'

我在互联网上搜索并说在 Python 2.6 中,“str”模块已重命名为“string”模块。所以这看起来像是在代码库中没有正确导入“字符串”模块的地方。

然而真正奇怪的是,当我从目录运行 python 代码home并运行同一段代码(使用pythonshell 或 using python pyfile.py)时,它工作正常!没有更多的导入错误。

所以我有点困惑。谁能给我任何提示?

谢谢!

4

2 回答 2

3

其他一些脚本sys.path被称为“string.py”并且正在掩盖 stdlib 模块。

于 2013-05-30T19:28:36.087 回答
1

仔细检查以确保您没有string.py已导入的文件。

要调试它,请放置在某处:

import sys
raise Exception("string module: %r" %(sys.modules.get("string"), ))

这将告诉您导入了哪个字符串模块(或者如果显示,则表示尚未导入None任何模块)。string

于 2013-05-30T19:30:20.313 回答