Icetime
Icetime

Reputation: 75

Execute custom command using subprocess that is in PATH variable

I want to execute another program that I compiled earlier from python using the subprocess.call(command) function.

However, python states that it cannot find the command. I suspect that subprocess is not able to find my custom command since it does not know the PATH variable of my Ubuntu system. Is it possible to somehow execute the following code, where command is part of my PATH?

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

Running this code leads to the error command not found.

Upvotes: 2

Views: 2348

Answers (2)

aweeeezy
aweeeezy

Reputation: 876

You can either provide the explicit path to your command:

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

or else modify your PATH variable in your Python code:

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

Upvotes: 3

kevic
kevic

Reputation: 449

You can modify the environment variables. But be careful when you pass arguments.

Try something like this:

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)

Upvotes: 1

Related Questions