类似的问题已经问了很多遍,但是在我的情况下,所有建议的解决方案都没有效果(令人满意)。
我有一个Python 3项目,其结构如下:
├── project1
│ ├── package
│ │ ├── tests
│ │ │ ├── __init__.py
│ │ │ └── test1.py
│ │ ├── __init__.py
│ │ ├── module1.py
│ │ └── module2.py
│ └── setup.py
我在package
(在Eclipse中)中将PYTHONPATH
列为源文件夹。
在项目内部一切正常,即:
tests\test1.py
中进行import module1
的工作有效 module2.py
或from module1 import foo
的{{1}}中,工作 但是,当我打包代码并使用import module1
安装代码时,我开始使用pip
。
如果在ImportError
中我尝试project2
或import module2
,我从from module2 import foo
导入module2
时收到错误消息。
为了使module1
中的导入正常工作,我需要将project2
中的导入更改为module2
或from package.module1 import foo
。这使import package.module2
引发导入错误。
project1
也有类似的问题。
我可以在Eclipse中将test1.py
文件夹添加到project1
,这可以解决运行时错误,但是我仍然在PyDev中看到编译错误。
是否有任何写导入或定义PYTHONPATH的方法,以便Python 3在所有情况下都能找到导入的模块/方法?
我强调Python 3是因为我在Python 2下有一个结构相同的项目(据我所知),该项目与定义为PYTHONPATH
的导入效果很好(这对Python 3引发了错误)
答案 0 :(得分:0)
最终执行以下操作:
package.module[.method]
package
添加到了PYTHONPATH
package.module
PYTHONPATH
文件夹
前两个更改足以使代码正常运行。 最后一个项目符号导致PyDev停止显示错误。