为什么 imp 找不到 "paste" 模块?

Why imp can not find "paste" module?

我遇到一个奇怪的问题:

我安装paste成功了。 "import paste" 也可以。

但是我发现 imp 找不到它。 "imp.find_module('paste')" 总是给出 "ImportError: No module named paste".

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import imp
>>> imp.find_module('paste')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named paste
>>> import paste

我在三台不同的机器(Ubuntu14.04、Windows 10、Windows XP)上测试过,都有类似的问题。

我已经复制了这种行为。我觉得有点奇怪。文档描述了 find_module() 行为中的一些细微差异,但它似乎没有突出显示与此差异相匹配的任何内容。我怀疑这是一个错误,或者可能是设计使然,但没有很好的记录。

paste 包特别使用 a pth configuration file。您可以使用 -S 禁用此行为以查看其效果。

$ python -c 'import paste' && echo found
found

$ python -S -c 'import paste' && echo found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named paste

主要问题似乎是 paste 模块没有 __init__.py 文件

如果您手动创建它,问题就解决了