2024-04-29 07:19:41 发布
网友
我需要在Python中进行这样的导出:
# export MY_DATA="my_export"
我试过:
# -*- python-mode -*- # -*- coding: utf-8 -*- import os os.system('export MY_DATA="my_export"')
但当我列出导出时,“我的数据”不会出现:
# export
如何使用Python进行导出而不将“我的导出”保存到文件中?
你真的想这么做
import os os.environ["MY_DATA"] = "my_export"
另一种方法是,如果您很匆忙,并且不介意后面的内容,那么可以在bash环境中执行python脚本的输出,并打印出在python中执行设置环境的命令。不太理想,但能在紧要关头完成工作。它在炮弹上不太方便携带,所以YMMV。
$(python -c 'print "export MY_DATA=my_export"')
(您也可以将语句用反勾号括在一些shell中``)
export是一个直接给shell的命令(例如bash),告诉它添加或修改其中一个环境变量。不能从子进程(如Python)更改shell的环境,这是不可能的。
export
bash
以下是你尝试os.system('export MY_DATA="my_export"')时发生的情况。。。
os.system('export MY_DATA="my_export"')
/bin/bash process, command `python yourscript.py` forks python subprocess |_ /usr/bin/python process, command `os.system()` forks /bin/sh subprocess |_ /bin/sh process, command `export ...` changes local environment
当最底层的/bin/sh子进程完成运行您的export ...命令时,它将与您刚刚更改的环境一起被丢弃。
/bin/sh
export ...
你真的想这么做
另一种方法是,如果您很匆忙,并且不介意后面的内容,那么可以在bash环境中执行python脚本的输出,并打印出在python中执行设置环境的命令。不太理想,但能在紧要关头完成工作。它在炮弹上不太方便携带,所以YMMV。
(您也可以将语句用反勾号括在一些shell中``)
export
是一个直接给shell的命令(例如bash
),告诉它添加或修改其中一个环境变量。不能从子进程(如Python)更改shell的环境,这是不可能的。以下是你尝试
os.system('export MY_DATA="my_export"')
时发生的情况。。。当最底层的
/bin/sh
子进程完成运行您的export ...
命令时,它将与您刚刚更改的环境一起被丢弃。相关问题 更多 >
编程相关推荐