Python Can';不要打开sh文件

Python Can';不要打开sh文件,python,shell,Python,Shell,我正在尝试从脚本python执行一个sh文件 我的python脚本 os.system('sh run.sh') 我的sh文件 echo 'The house is blue' | /opt/palavras/por.pl > output.txt 错误: sh:0:无法打开跑步。sh 如何修复它?确保您的bash脚本具有正确的权限(即它是可执行的)。在终端运行中: chmod +x run.sh 然后重试(假设run.sh与python脚本位于同一目录中) 我也不相信这会从终端运行

我正在尝试从脚本python执行一个sh文件

我的python脚本

os.system('sh run.sh')
我的sh文件

echo 'The house is blue' | /opt/palavras/por.pl > output.txt
错误:

sh:0:无法打开跑步。sh


如何修复它?

确保您的bash脚本具有正确的权限(即它是可执行的)。在终端运行中:

chmod +x run.sh
然后重试(假设
run.sh
与python脚本位于同一目录中)


我也不相信这会从终端运行,因为您必须按顺序运行该文件。尝试:

os.system('sh chmod +x run.sh|./run.sh')
相反


请参阅:有关运行sh文件和使用在shell中按顺序运行的
|
的详细信息。

您可能希望使用绝对路径或相对于运行python程序的目录的路径。目前,
sh
将在其
$PATH
中查找
run.sh
,这可能不同于您的执行上下文的
$PATH
。因为我认为您需要使用“or”
操作符以shell顺序运行
os.system('chmod+x run.sh')
os.system('./run.sh')
不幸地不能做到这一点,因为这相当于打开两个终端。
os.system('sh chmod +x run.sh|./run.sh')