首页 > 解决方案 > 添加到 PATH 以供以后在同一脚本中与 os.system 或 subprocess.Popen 一起使用

问题描述

假设它还"D:\Temp\Subfolder\mytest.exe"没有在 PATH 中。我试过了:

import os, sys, subprocess
sys.path.append("D:\Temp\Subfolder")           # 1
os.environ['PATH'] += "D:\Temp\Subfolder"      # 2

但在这两种情况下,这都失败了:

os.system('mytest')
subprocess.Popen('mytest')

问题:如何为当前运行的进程设置 PATH ,这样os.systemsubprocess.Popen(或导入库调用的那些命令,这是我的用例)不会失败?

PS:我正在寻找一种解决方案,而无需使用 Windows 的 GUI 手动编辑环境变量:控制面板 > 系统 > 高级系统设置 > 环境变量 > ...

标签: pythonwindowspathsubprocesspython-os

解决方案


正如@Jay 在评论中提到的,解决方案是:

os.environ['PATH'] += os.pathsep + r"D:\Temp\Subfolder"

(这假设环境变量PATH已经存在;之前检查它可能很有用)

事实上,os.environ['PATH']是一个字符串而不是一个列表(这是我最初的想法)。

然后,两者:

os.system('mytest')
subprocess.Popen('mytest')

工作。


注意:这些都不起作用:

sys.path.append(os.pathsep + "D:\Temp\Subfolder")
sys.path.append("D:\Temp\Subfolder")

推荐阅读