我需要在 Python 中进行这样的导出:
# export MY_DATA="my_export"
我已经尝试过:
# -*- python-mode -*-
# -*- coding: utf-8 -*-
import os
os.system('export MY_DATA="my_export"')
但是当我列出导出时,“MY_DATA”没有出现:
# export
如何在不将“my_export”保存到文件的情况下使用 Python 进行导出?
最佳答案
export
是你直接给 shell 的命令(例如 bash
),告诉它添加或修改它的一个环境变量。您不能从子进程(例如 Python)更改 shell 的环境,这是不可能的。
当您尝试 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 its local environment
当最底部的 /bin/sh
子进程完成运行您的 export ...
命令时,它会连同您刚刚更改的环境一起被丢弃。
https://stackoverflow.com/questions/1506010/