如何从 shell 脚本运行 Python 脚本,条件如下:
我的文件/文件夹结构如下所示:
project_folder
-subfolder_prog_1
-prog1.py
-subfolder_prog_2
-prog2.py
-helpers
-helper.py
每个子文件夹_prog_x都使用自己的虚拟环境(pipenv)。
prog1.py 和 prog2.py 像这样使用 helper.py:
from helpers.helper import helpful_function
现在 - 我知道我可以像这样从 shell 激活环境:
cd ~/git/project_folder/subfolder_prog_1
pipenv run python prog1.py
我还知道,如果我想使用来自并行文件夹的导入,我必须从父文件夹将脚本作为模块运行,如下所示:
cd ~/git/project_folder/
python -m subfolder_prog_1.prog1
但是我怎样才能将两者结合起来呢?
我试过了
cd ~/git/project_folder/
pipenv run python -m subfolder_prog_1.prog1
但这给了我一个 ModuleNotFoundError: No module named 'subfolder_prog_1'.
感谢所有提示!
你可以这样写你的代码:
cd ~/git/project_folder/
pipenv run python ./subfolder_prog_1/prog1.py
您还可以在使用
pipenv run
时检查当前目录,方法是将以下行代码添加到当前代码中:
import os
######Your code here######
os.system('pwd')
这将打印当前执行的目录。 (使用
os.curdir
无济于事,因为它会显示一个点)