首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置环境变量,使其可以在我的程序之外读取

设置环境变量,使其可以在我的程序之外读取
EN

Stack Overflow用户
提问于 2014-01-09 00:55:05
回答 1查看 1.9K关注 0票数 1

下面是我的脚本:

代码语言:javascript
复制
try:
    os.environ['CONSOLE'] = '1'
    while True:
        ...
except KeyboardInterrupt:
    del os.environ['CONSOLE']

我正在尝试设置一个名为CONSOLE的环境变量。当这个程序运行时,这个变量应该存在,一旦我用Ctrl+C退出它,它就会消失。

但是,当我让程序运行并尝试从我的shell打印它时,我得到:

代码语言:javascript
复制
$ echo $CONSOLE
CONSOLE: Undefined variable.

我似乎也无法从我的PHP脚本中读取它。我的变量在哪里?我觉得os.environ应该允许我这么做?

EN

回答 1

Stack Overflow用户

发布于 2014-01-09 01:10:20

这是shell工作的本质,每个新进程都是fork/exec'd,所以您的Python脚本是来自启动它的shell的running in a separate process

通过任何方式设置环境变量都不会更改启动它的shell中的变量,因为脚本的环境和原始shell的环境是不同的。

正如你在这里看到的,在脚本之后,它并没有丢失,但即使python仍然在运行(bash 4.2,python 3.3)

代码语言:javascript
复制
>>> import os
>>> os.environ['CONSOLE'] = '1'
>>> 
[1]+  Stopped                 python3.3
$ echo $CONSOLE

$ fg
python3.3

>>> os.environ['CONSOLE']
'1'

如果您试图有效地在PHP和Python脚本之间获得命名共享内存,则可以像对文件进行use a FIFO和读/写一样,或者通过套接字进行通信。

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

https://stackoverflow.com/questions/21001791

复制
相关文章

相似问题

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