python-2.7 - 使用环境变量启动子进程
问题描述
我需要启动一个进程,将一些参数传递给环境变量中的子进程。
我知道我可以subprocess.run()
在 python > 3.5 中使用它来执行此操作。我怎样才能用 python 2.7 做到这一点?
在 python 2.7 中,我可以修改启动子进程的进程的环境变量。子进程将继承环境变量。但我不想那样。我只想在子进程中设置环境变量。
解决方案
利用:subprocess.Popen('env', env={'A':'5','B':'5'})
样品运行:
>>> import subprocess
>>> subprocess.Popen('env', env={'A':'5','B':'5'})
<subprocess.Popen object at 0x102288950>
>>> A=5
B=5
从文档:
如果 env 不是 None,它必须是定义新进程的环境变量的映射;这些用于代替继承当前进程的环境,这是默认行为。
Python3subprocess.run()
使用相同的kwarg:Popen
env
完整的函数签名与 Popen 构造函数的签名大致相同
推荐阅读
- python - SageMaker 脚本模式 + 管道模式
- excel - 不引用excel表上的列
- autodesk-forge - 为什么文本标记大小因缩放而异?
- sql - 使用 CalendarTable SQL Server 2008 计算 NETWORKDAYS
- flask - Psycopg2 和 Flask - 将连接绑定到 before_request 和 teardown_appcontext
- zendesk - 页面重新加载后如何触发 zendesk Web 小部件?
- android - 表 users_data 没有名为的列
- sql - 有没有更好的方法来拆分简单更新的工作?
- java - 删除 ArrayList 中大于 x 的数字
- reactjs - 模拟表单提交时无法读取属性“值”