我的计算机上有一个python 2.7.15项目(我知道,是出于遗留原因),我可以从那里运行不同的文件作为模块:
cd /home/me/code/project
python -m path.to.module
这很好。问题是我正在从另一个目录中的另一个程序调用这些模块。如果我设置了PYTHONPATH
,这应该可以工作。
export PYTHONPATH=/home/me/code/project
cd /home/me/code/controller
python -m path.to.module
但是,此操作失败并显示:
No module named path.to.module
这直接在命令行上失败,因此与我从另一个程序调用它无关。
如果PYTHONPATH
不成功,如何从另一个目录调用该模块?
答案 0 :(得分:1)
PYTHONPATH的问题是它更改了sys.path,这是python解释器在导入模块时搜索模块的方式。这与调用python运行脚本不同。不幸的是,我不知道如何解决这个问题。一种解决方案是运行bash脚本来为您更改这些目录:
创建一个名为runModule.sh的bash脚本
#!/bin/sh
python -m some_module
cd path/to/other_module
python -m other_module
使其可执行
chmod -x ./runModule.sh
然后运行
./runModule.sh