【发布时间】:2015-11-21 08:20:02
【问题描述】:
我正在用 Python 开发一个系统,其中包括一个计算引擎和一个前端。我将它们分成两个项目,因为计算引擎也可以用于其他前端。
我正在使用 Eclipse 和 PyDev。一切都在 Eclipse/PyDev 中完美运行,但是一旦我尝试在 PyDev 之外(从命令行)运行它,我就会遇到导入错误。我已经做了很多研究来找到问题,但我只是没有看到一个很好的解决方案。我相信 PyDev 修改了 Python 路径。
在下面的项目布局中,我在一个项目(计算)中有两个包(package1 和测试)。我似乎无法在测试中从 package1 导入任何东西。我还有另一个项目(前端)。在这里我也无法从 package1 导入任何东西。
我想了解的是从命令行调用我的脚本/测试文件的正确方法?两个单独的项目和同一个项目中的两个包。我认为它类似于 PyDev 的做法。到目前为止,我认为我有以下选择:
- 创建要附加到 sys.path 的 python 代码(看起来很老套/不好的做法)
- 当我像这样调用 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
对我的项目布局的评论也将不胜感激。
【问题讨论】: