首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >os.environ['http_proxy']不工作

os.environ['http_proxy']不工作
EN

Stack Overflow用户
提问于 2013-01-11 13:52:18
回答 2查看 10.8K关注 0票数 4

可能重复: Is it possible to change the Environment of a parent process in python?

我正在使用python 2.4.3。我试图设置我的http_proxy变量。请看下面的例子,请告诉我出了什么问题。变量是根据python设置的,但是当我脱离交互模式时。http_proxy变量仍未设置。我在脚本中尝试过,也用其他变量尝试过,但是我得到了相同的结果。在操作系统中实际上没有设置任何变量。

代码语言:javascript
复制
Python 2.4.3 (#1, May  1 2012, 13:52:57)
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ['http_proxy']="abcd"
>>> os.system("echo $http_proxy")
abcd
0
>>> print os.environ['http_proxy']
abcd
>>>
user@host~$ echo $http_proxy

user@host~$
EN

回答 2

Stack Overflow用户

发布于 2013-01-11 13:59:38

运行此代码时,设置环境变量,其工作范围仅在进程中。退出后(退出python的交互模式),这些环境将消失。

正如您的代码“os.system(”回显$http_proxy")“指示的那样,如果要使用这些环境变量,则需要在进程中运行外部程序。这些变量将被转移到子进程中,并可由它们使用。

票数 3
EN

Stack Overflow用户

发布于 2013-01-11 14:01:52

环境变量不是“全局设置数据库”;在这里设置环境没有任何影响。

这方面的例外是,调用其他程序的程序可以为它们的子程序提供不同的环境。

在shell,当您键入

代码语言:javascript
复制
[~/]$ FOO=bar baz

您正在告诉shell使用一些额外的环境baz调用程序FOO

您也可以在python中这样做,但是更改os.environ不会产生任何影响。该变量只包含一个常规python,它使用的是任何启动环境。您可以通过将env的备用值传递给subprocess.Popen来更改python将使用的环境。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14279560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档