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

Python 如何从另一个目录运行模块?,python,linux,python-2.7,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.modul

我的电脑上有一个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
但是,这在以下情况下失败:

没有名为path.to.module的模块
这直接在命令行上失败,因此与我从另一个程序调用它无关


如果PYTHONPATH未成功,如何从另一个目录调用此模块?

PYTHONPATH的问题是它会更改sys.path,这是python解释器在导入模块时搜索模块的方式。这与调用python运行脚本不同。不幸的是,我不知道一个pythonic解决方案。一种解决方案是运行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

嗨,瑞安,谢谢你的回复!那么您是说,如果不以某种方式
cd
ing进入另一个目录,就无法从另一个目录运行模块?这看起来很糟糕,但我想这与所有其他python环境的痛苦和困境是一致的。我会找到别的办法的,谢谢!这里的问题是python用于搜索的路径变量来自python实例。您正在从另一个目录调用命令行上的模块。我可能不理解您的问题,但您也可以构建一个python脚本来导入此模块,并将该python脚本中的sys.path变量更改为模块的位置。明白了,这很有意义!我找到了一个解决方法,感谢您的洞察力。
python-m
需要模块的名称,而不是路径。如果它在您的
PYTHONPATH
中,您应该能够使用
python-m模块运行它
python-mpip
就是一个很好的例子。@prismofearthing您找到了什么解决方法?