我正在用Python开发一个系统,包括计算引擎和前端。我将它们分成两个项目,因为计算引擎也可以用于其他前端。
我在使用Eclipse和PyDev。在Eclipse/PyDev中一切正常,但是一旦我尝试在PyDev之外的环境下运行它(从命令行),就会出现导入错误。我已经做了很多研究来找到问题所在,但我找不到一个好的解决方案。我相信PyDev修改了Python路径。
在我的项目布局中,我有一个项目(Calculations)中的两个包(package1和tests)。我无法从tests中导入package1中的任何内容。我还有另一个项目(Frontend)。在这里,我也无法从package1中导入任何内容。
我想要了解的是从命令行调用我的脚本/测试文件的正确方式?无论是两个单独的项目还是同一个项目中的两个包,我认为应该类似于PyDev的调用方式。到目前为止,我认为有以下几种选择:
我在使用Eclipse和PyDev。在Eclipse/PyDev中一切正常,但是一旦我尝试在PyDev之外的环境下运行它(从命令行),就会出现导入错误。我已经做了很多研究来找到问题所在,但我找不到一个好的解决方案。我相信PyDev修改了Python路径。
在我的项目布局中,我有一个项目(Calculations)中的两个包(package1和tests)。我无法从tests中导入package1中的任何内容。我还有另一个项目(Frontend)。在这里,我也无法从package1中导入任何内容。
我想要了解的是从命令行调用我的脚本/测试文件的正确方式?无论是两个单独的项目还是同一个项目中的两个包,我认为应该类似于PyDev的调用方式。到目前为止,我认为有以下几种选择:
- 创建python代码以追加到sys.path(看起来很hacky/不是很好的实践)
- 当我像这样调用test_some_calc.py时修改PYTHONPATH:PYTHONPATH= python test_some_calc.py (我认为这是PyDev的做法,但它似乎有点长——必须有一个更简单的方法吧?
- 制作安装包(最终我可能会采用这种方法,但现在还不行。)
CodeSolution/
Calculations/
package1/
__init__.py
subpackage/
__init__.py
some_calc.py
subpackage2/
__init__.py
another_calc.py
tests/
__init__.py
subpackage/
__init__.py
test_some_calc.py # Unable to import from package1
subpackage2/
__init__.py
test_another_calc.py # Unable to import from package1
Frontend/
some_script.py # Unable to import from package1
欢迎对我的项目布局提出意见。