我正在用 Python 开发一个系统,其中包括计算引擎和前端。我将它们分成两个项目,因为计算引擎也可用于其他前端。
我正在使用 Eclipse 和 PyDev。一切都在 Eclipse/PyDev 中完美运行,但是一旦我尝试在 PyDev 之外(从命令行)运行它,就会出现导入错误。我已经做了很多研究来找到这个问题,但我只是没有看到一个有效的解决方案。我相信 PyDev 修改了 Python 路径。
在下面的项目布局中,一个项目(计算)中有两个包(package1 和测试)。我似乎无法在测试中从 package1 导入任何内容。我还有另一个项目(前端)。这里我也无法从 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
对我的项目布局的评论也将受到赞赏。
最佳答案
从系统上的任何位置包含某些 python 的干净、快速和模块化的方法是创建一个名为 mymodule.pth 的文件并将其放入站点包的路径中
mymodule.pth 应该包含您的项目的路径。项目文件夹必须有一个 __init__.py 文件。
例如输入:
for Linux:
/home/user/myproject
里面
block 引用>/usr/lib/python2.7/site-packages/mymodule.pth
或
for Windows
C:\\Users\myUsername\My Documents\myproject
里面
block 引用>C:\PythonXY\Lib\site-packages\mymodule.pth
关于python - 从命令行运行 Eclipse/PyDev 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33841245/