Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
subprocess.Popen在哪里查找参数进程?(Python)_Python_Subprocess - Fatal编程技术网

subprocess.Popen在哪里查找参数进程?(Python)

subprocess.Popen在哪里查找参数进程?(Python),python,subprocess,Python,Subprocess,例如,当我键入: child=Popen('cmd'),解释器如何知道在哪里查找cmd?如果我想使用我的自定义进程,我应该把它放在哪里才能被识别?它会在PATH环境变量的目录中查找。但您始终可以指定绝对路径或相对路径,因此,如果您知道自定义进程的位置,您可以只提供它的完整路径。您可以使用env选项进行Popen 默认行为是继承python进程的环境 您可以通过以下方式使用env选项自己定义环境变量(并向路径添加一些内容) import subprocess, os my_env = os.env

例如,当我键入:
child=Popen('cmd'),解释器如何知道在哪里查找cmd?如果我想使用我的自定义进程,我应该把它放在哪里才能被识别?

它会在PATH环境变量的目录中查找。但您始终可以指定绝对路径或相对路径,因此,如果您知道自定义进程的位置,您可以只提供它的完整路径。

您可以使用
env
选项进行
Popen

默认行为是继承python进程的环境

您可以通过以下方式使用
env
选项自己定义环境变量(并向路径添加一些内容)

import subprocess, os
my_env = os.environ.copy()
my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"]
subprocess.Popen(my_command, env=my_env)