【发布时间】:2018-07-30 16:06:27
【问题描述】:
类似的问题已经被问过很多次,但在我的情况下,没有一个建议的解决方案有效(令人满意)。
我有一个 Python 3 项目,其结构如下:
├── project1
│ ├── package
│ │ ├── tests
│ │ │ ├── __init__.py
│ │ │ └── test1.py
│ │ ├── __init__.py
│ │ ├── module1.py
│ │ └── module2.py
│ └── setup.py
我将package 列为PYTHONPATH 中的源文件夹(在Eclipse 中)。
项目内部一切正常,即:
- 在
tests\test1.py做import module1工作 - 在
module2.py两个from module1 import foo或只是import module1工作
但是,当我打包代码并使用 pip 安装它时,我开始收到 ImportError。
如果在project2 中尝试import module2 或from module2 import foo,我会收到module2 从module1 执行的导入错误。
为了使project2 中的导入起作用,我需要将module2 中的导入更改为from package.module1 import foo 或import package.module2。这使得project1 抛出导入错误。
test1.py也有类似的问题。
我可以在 Eclipse 中将 project1 的文件夹添加到 PYTHONPATH 并解决 runtime 错误,但我仍然在 PyDev 中看到编译错误。
有没有办法编写导入或定义 PYTHONPATH,以便 Python 3 在所有情况下都能找到导入的模块/方法?
我之所以强调 Python 3,是因为我在 Python 2 下有一个具有相同结构(据我所知)的项目,它与定义为 import .module1 的导入配合得很好(这会引发 Python 3 的错误)
【问题讨论】:
标签: eclipse python-3.x pydev