如何从另一个目录运行模块?

时间:2019-09-14 01:07:39

标签: python linux python-2.7

我的计算机上有一个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不成功,如何从另一个目录调用该模块?

1 个答案:

答案 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