无法从另一个模块导入模块,但可以从第三个模块导入模块(都在不同的包中)
Cannot import module from another module, but can so from a third module (all in different packages)
我的设置:
project
extract (package)
-> extract_step.py
text (package)
-> paragraph.py
util (package)
-> paths.py
三个包里都有空 __init__.py
。如果重要的话,PyDev 还会显示带有包图标的包。
在 extract_step.py 中,我可以这样导入:
from text.paragraph import Paragraph
并实例化段落对象并使用它们。
在 paths.py 中,我尝试以完全相同的方式导入,但我得到:
ImportError: No module named 'text.paragraph'; 'text' is not a package
我正在使用 Eclipse 和 PyDev 5.3。 Python 3.5.2。
我在 Eclipse 中的 PYTHONPATH 只有:
/${PROJECT_DIR_NAME}
我可以 运行 extract_step.py 没有问题,但我不能 运行 paths.py 没有收到错误消息(即使导入是唯一的行paths.py)。我能做些什么来解决这个问题,为什么会这样?
编辑:
我尝试制作一个新包,其中包含一个新模块 test.py。我可以导入那个!我也尝试在 util 包中制作一个新模块,但它也不起作用。
解决方案(修复):
我删除了 util
包。
我重新创建了包和 paths.py
。
现在可以了。
这回答了我问题的 "How do I fix this" 部分,但没有回答为什么。
如果有人知道为什么会这样,我会接受他们的回答,但现在,如果有人遇到同样的问题,我就是这样解决的。
我的设置:
project
extract (package)
-> extract_step.py
text (package)
-> paragraph.py
util (package)
-> paths.py
三个包里都有空 __init__.py
。如果重要的话,PyDev 还会显示带有包图标的包。
在 extract_step.py 中,我可以这样导入:
from text.paragraph import Paragraph
并实例化段落对象并使用它们。
在 paths.py 中,我尝试以完全相同的方式导入,但我得到:
ImportError: No module named 'text.paragraph'; 'text' is not a package
我正在使用 Eclipse 和 PyDev 5.3。 Python 3.5.2。 我在 Eclipse 中的 PYTHONPATH 只有:
/${PROJECT_DIR_NAME}
我可以 运行 extract_step.py 没有问题,但我不能 运行 paths.py 没有收到错误消息(即使导入是唯一的行paths.py)。我能做些什么来解决这个问题,为什么会这样?
编辑: 我尝试制作一个新包,其中包含一个新模块 test.py。我可以导入那个!我也尝试在 util 包中制作一个新模块,但它也不起作用。
解决方案(修复):
我删除了 util
包。
我重新创建了包和 paths.py
。
现在可以了。
这回答了我问题的 "How do I fix this" 部分,但没有回答为什么。
如果有人知道为什么会这样,我会接受他们的回答,但现在,如果有人遇到同样的问题,我就是这样解决的。