python - 如何在 Linux 上使用 Python 导出

我需要在 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/

相关文章:

python - 如何获取python列表的第n个元素或默认值(如果不可用)

python - 如何将一列中的文本拆分为多行

linux - 如何获取使用 nohup 运行的程序列表

linux - 如何在 Ubuntu 中添加用户?

linux - 设置 Apache 用户的 umask

python - Matplotlib 中的 bin 大小(直方图)

linux - 在 Linux 中编译/运行汇编程序?

python - 我可以使用 `pip` 而不是 `easy_install` 进行 `python

python - 通过索引访问 collections.OrderedDict 中的项目

linux - 解释段错误消息