【发布时间】:2021-05-20 06:51:07
【问题描述】:
我正在尝试从一个 Python 程序调用一个 shell 脚本,该程序又运行一个 Python 程序。所以我创建了一个名为 run.sh 的文件,其中包含以下代码行,
source venv/bin/activate
python main.py
上面的脚本会被这段代码调用,
from pathlib import Path
import os
import subprocess
class Handler:
ENTRYPOINT = 'run.sh'
def run(self, project_path):
if os.path.exists(project_path):
subprocess.call(['bash', project_path+self.ENTRYPOINT])
else:
print('Project path does not exist!')
所以,每当执行上面的run方法时,都会抛出这个错误
python: 无法打开文件 'main.py': [Errno 2] 没有这样的文件或目录
run.sh 文件和 main.py 文件位于同一级别。我对shell脚本了解不多,只是用谷歌搜索,但我找不到上述错误的原因。甚至不确定它是否与那个shell脚本有关。任何帮助将不胜感激。
【问题讨论】:
-
run.sh文件的位置与您的问题无关。在 Python 调用之前在脚本中执行ls -ld $PWD/*.py,以查看此目录中有哪些 Python 文件。