【问题标题】:Python: Submodules Not FoundPython:未找到子模块
【发布时间】:2012-06-21 02:16:56
【问题描述】:

当我尝试像这样导入 reportlab.graphics.shapes 时,我的 Python 无法识别子模块:

>>> from reportlab.graphics.shapes import Drawing

Traceback (most recent call last):
  File "<pyshell#14>", line 1, in <module>
    from reportlab.graphics.shapes import Drawing
ImportError: No module named shapes

我已将reportlab 包复制到/site-packages,并且可以成功导入module reportlab.graphics

我的 Python 版本是 2.7.3。

谁能帮我解决这个问题?

【问题讨论】:

  • 如果它解决了你的问题,你能接受吗?

标签: python importerror


【解决方案1】:

正如@dan-boa 所指出的,您可以将路径添加到模块搜索路径中,但是由于您可以找到父模块,我怀疑这是您的根本问题。

您是否在其他路径上安装了一些剩余的模块?您可以通过执行以下命令检查找到父包(reportlab)的路径:

import reportlab
print reportlab.__file__

如果这确实是您所期望的路径,则使用子模块递归地尝试此操作,直到您发现问题所在。也许,您的包裹已损坏?如果可以找到有问题的文件/模块,请尝试手动检查返回的路径。

如果这不是您期望的路径,请从第二个路径清除安装并重试。

最后,万一你发现是路径问题,不用每次都使用sys.path.append添加路径,可以添加到PYTHONPATH

【讨论】:

  • 感谢您的建议。这是找到问题的好方法。
【解决方案2】:

请检查您的系统路径,如果模块的目录不存在,请添加它。

import sys
sys.path.append('PATH_OF_THE_MODULE')

由于site-packages已经在他们的sys.path中,可能因此包被成功导入。

【讨论】:

  • 感谢您的回复。但是我已经把它放在了 sys.path 中。
  • 而不是appendsys.path.insert(0, 'path') 可能更合适,因为它比原来的优先级更高。
猜你喜欢
  • 2021-10-05
  • 2022-08-11
  • 2021-08-19
  • 1970-01-01
  • 2017-09-19
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多