Python 设置环境变量,使其可以在程序外部读取
这是我的剧本:Python 设置环境变量,使其可以在程序外部读取,python,linux,Python,Linux,这是我的剧本: try: os.environ['CONSOLE'] = '1' while True: ... except KeyboardInterrupt: del os.environ['CONSOLE'] 我正在尝试设置一个名为CONSOLE的环境变量。当这个程序运行时,这个变量应该存在,一旦我用Ctrl+C退出它,它应该消失 但是,当我让程序运行并尝试从shell打印它时,我得到: $ echo $CONSOLE CONSOLE: Unde
try:
os.environ['CONSOLE'] = '1'
while True:
...
except KeyboardInterrupt:
del os.environ['CONSOLE']
我正在尝试设置一个名为CONSOLE
的环境变量。当这个程序运行时,这个变量应该存在,一旦我用Ctrl+C退出它,它应该消失
但是,当我让程序运行并尝试从shell打印它时,我得到:
$ echo $CONSOLE
CONSOLE: Undefined variable.
我似乎也无法从我的PHP脚本中读取它。我的变量在哪里?我认为
os.environ
应该允许我这样做?这是shell工作的本质,每个新进程都是如此,因此您的Python脚本来自启动它的shell
无论通过何种方式设置环境变量,都不会更改启动脚本的shell中的变量,因为脚本的环境和原始shell的环境是不同的
正如您在这里看到的,在脚本编写之后,它并没有丢失,但即使python仍在运行(Bash4.2、Python3.3)
如果您试图在PHP和Python脚本之间有效地获得命名共享内存,那么您可以像读取文件一样读取/写入文件,或者通过套接字进行通信。这是shell工作的本质,每个新进程都是如此,因此您的Python脚本来自启动它的shell 无论通过何种方式设置环境变量,都不会更改启动脚本的shell中的变量,因为脚本的环境和原始shell的环境是不同的 正如您在这里看到的,在脚本编写之后,它并没有丢失,但即使python仍在运行(Bash4.2、Python3.3)
如果您试图在PHP和Python脚本之间有效地获得命名共享内存,那么您可以像读取文件一样读取/写入,或者通过套接字进行通信。您不能这样做。这些变量将不会持久存在,并且在父shell中不可用。您需要以其他方式传递信息。那么,在Python脚本和PHP脚本之间共享单个布尔值的最简单方式是什么?轮询一个文件似乎有点蹩脚。
echo export CONSOLE=1>~/.bash\u rc
。。。你到底想做什么?你最好是重新思考你的方法(这让我想起了那些XY问题)取决于它们在哪里运行。如果一个启动另一个,命令行参数或环境变量将起作用。否则,某些形式的IPC。您不能这样做。这些变量将不会持久存在,并且在父shell中不可用。您需要以其他方式传递信息。那么,在Python脚本和PHP脚本之间共享单个布尔值的最简单方式是什么?轮询一个文件似乎有点蹩脚。echo export CONSOLE=1>~/.bash\u rc
。。。你到底想做什么?你最好是重新思考你的方法(这让我想起了那些XY问题)取决于它们在哪里运行。如果一个启动另一个,命令行参数或环境变量将起作用。否则,某种形式的IPC。
>>> import os
>>> os.environ['CONSOLE'] = '1'
>>>
[1]+ Stopped python3.3
$ echo $CONSOLE
$ fg
python3.3
>>> os.environ['CONSOLE']
'1'