【问题标题】:Execute custom command using subprocess that is in PATH variable使用 PATH 变量中的子进程执行自定义命令
【发布时间】:2022-01-03 05:21:25
【问题描述】:

我想执行我之前使用 subprocess.call(command) 函数从 python 编译的另一个程序。

但是,python 声明它找不到该命令。我怀疑 subprocess 无法找到我的自定义命令,因为它不知道我的 Ubuntu 系统的 PATH 变量。是否有可能以某种方式执行以下代码,其中命令是我的PATH 的一部分?

import subprocess
subprocess.run("command -args")

运行此代码会导致错误command not found

【问题讨论】:

    标签: python shell subprocess command


    【解决方案1】:

    您可以提供命令的显式路径:

    subprocess.run('/full/path/to/command.sh')
    

    或者在 Python 代码中修改 PATH 变量:

    import os
    os.environ['PATH'] += ':'+'/full/path/to/'
    subprocess.run('command.sh')
    

    【讨论】:

    • 谢谢,效果很好!
    【解决方案2】:

    您可以修改环境变量。但是传递参数时要小心。

    试试这样的:

    import os
    import subprocess
    
    my_env = os.environ.copy()
    my_env["PATH"] = "/usr/test/path:" + my_env["PATH"]
    subprocess.run(["command", "-args"], env=my_env)
    

    【讨论】:

      猜你喜欢
      • 2015-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-08
      • 2014-06-22
      • 1970-01-01
      • 2022-10-19
      • 1970-01-01
      相关资源
      最近更新 更多