假设"D:TempSubfoldermytest.exe"
还不在PATH中。我试过了:
import os, sys, subprocess
sys.path.append("D:TempSubfolder") # 1
os.environ['PATH'] += "D:TempSubfolder" # 2
但在这两种情况下,这都失败了:
os.system('mytest')
subprocess.Popen('mytest')
问题:如何为当前运行的进程设置PATH,使os.system
和subprocess.Popen
(或导入库调用的那些命令,这是我的用例(不会失败
PS:我正在寻找一种不必手动编辑Windows GUI环境变量的解决方案:控制面板>系统>高级系统设置>环境变量>
@Jay在评论中提到,解决方案是:
os.environ['PATH'] += os.pathsep + r"D:TempSubfolder"
(这假设环境变量PATH
已经存在;在此之前进行检查可能会很有用(
事实上,os.environ['PATH']
是一个字符串,而不是一个列表(这是我最初的想法(。
然后,两者:
os.system('mytest')
subprocess.Popen('mytest')
工作。
注意:这些都不起作用:
sys.path.append(os.pathsep + "D:TempSubfolder")
sys.path.append("D:TempSubfolder")