Ubuntu下Python os.environ设置环境变量跨脚本不可见问题求助
如何在Ubuntu中设置全局可见的Python环境变量
你用os.environ设置的环境变量仅属于当前Python进程,进程结束后变量就会消失;其他独立运行的Python脚本是全新的进程,不会继承这个变量,所以读不到。以下是几种可行的解决方法:
方法一:终端会话中设置环境变量
临时生效(仅当前终端)
在终端执行以下命令,之后当前终端内运行的所有Python脚本都能读取到该变量:
export mykey=$(python -c "from uuid import uuid4; print(uuid4())")
永久生效(所有终端会话)
编辑你的shell配置文件(bash用户编辑~/.bashrc,zsh用户编辑~/.zshrc),添加一行:
export mykey=$(python -c "from uuid import uuid4; print(uuid4())")
保存后执行以下命令使配置生效:
source ~/.bashrc # zsh用户替换为source ~/.zshrc
之后新开的终端或重启系统后,所有Python脚本都能访问该变量。
方法二:通过共享文件传递变量
如果需要在Python脚本间动态传递变量,可以将变量值写入文件,其他脚本读取该文件:
设置变量的脚本
from uuid import uuid4 mykey = str(uuid4()) # 将变量写入临时文件 with open('/tmp/mykey_store', 'w') as f: f.write(mykey)
读取变量的脚本
try: with open('/tmp/mykey_store', 'r') as f: getkey = f.read().strip() print(getkey) except FileNotFoundError: print(None)
方法三:系统级全局环境变量
如果要让所有用户的Python脚本都能访问该变量,编辑/etc/environment文件(需要sudo权限),添加一行:
mykey=生成的UUID值
注意:这里无法直接执行Python代码生成UUID,需要先在终端执行python -c "from uuid import uuid4; print(uuid4())"获取值,再写入文件。配置完成后重启系统或重新登录会话即可生效。
内容的提问来源于stack exchange,提问作者Pavel M.
相关产品推荐
相关产品推荐

