[英]Execute bash file from Python
我想从Python内部执行Shell脚本文件。 我目前正在使用Envoy来执行此操作:
envoy.run('./scripts.sh')
但这使我No such file or directory
错误。
我想知道,以上文件在哪个路径下执行? 如何使上面的脚本运行? 它与Python脚本位于同一目录中。
该程序在os.getcwd()
报告的当前工作目录中执行。 对于命令行程序,通常是运行程序时所在的目录。 要在与python脚本相同的目录中运行命令,请使用__file__
变量确定您的位置:
import os
import envoy
my_path = os.path.dirname(os.path.abspath(__file__))
envoy.run('./scripts.sh', cwd=my_path)
您收到的错误可能不一定来自python本身,但是您发布的错误也可以从bash本身返回,因此您的bash脚本也可以。
-bash: ./asdf: No such file or directory
您的shell脚本是否需要参数? 另外,您是否尝试过直接而不是通过python执行shell脚本?
我建议的另一件事是使用环境bash而不是完整路径,因为由于Linux OS设计的差异,它通常更适合于可移植性。
#!/usr/bin/env bash
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.