1. <legend id='Yk9oN'><style id='Yk9oN'><dir id='Yk9oN'><q id='Yk9oN'></q></dir></style></legend>

    1. <tfoot id='Yk9oN'></tfoot>

    2. <small id='Yk9oN'></small><noframes id='Yk9oN'>

      <i id='Yk9oN'><tr id='Yk9oN'><dt id='Yk9oN'><q id='Yk9oN'><span id='Yk9oN'><b id='Yk9oN'><form id='Yk9oN'><ins id='Yk9oN'></ins><ul id='Yk9oN'></ul><sub id='Yk9oN'></sub></form><legend id='Yk9oN'></legend><bdo id='Yk9oN'><pre id='Yk9oN'><center id='Yk9oN'></center></pre></bdo></b><th id='Yk9oN'></th></span></q></dt></tr></i><div id='Yk9oN'><tfoot id='Yk9oN'></tfoot><dl id='Yk9oN'><fieldset id='Yk9oN'></fieldset></dl></div>

      • <bdo id='Yk9oN'></bdo><ul id='Yk9oN'></ul>

    3. python - os.getenv 和 os.environ 看不到我的 bash shell 的环境变量

      python - os.getenv and os.environ don#39;t see environment variables of my bash shell(python - os.getenv 和 os.environ 看不到我的 bash shell 的环境变量)

      <small id='tYzAy'></small><noframes id='tYzAy'>

      <tfoot id='tYzAy'></tfoot><legend id='tYzAy'><style id='tYzAy'><dir id='tYzAy'><q id='tYzAy'></q></dir></style></legend>
          <tbody id='tYzAy'></tbody>

        • <i id='tYzAy'><tr id='tYzAy'><dt id='tYzAy'><q id='tYzAy'><span id='tYzAy'><b id='tYzAy'><form id='tYzAy'><ins id='tYzAy'></ins><ul id='tYzAy'></ul><sub id='tYzAy'></sub></form><legend id='tYzAy'></legend><bdo id='tYzAy'><pre id='tYzAy'><center id='tYzAy'></center></pre></bdo></b><th id='tYzAy'></th></span></q></dt></tr></i><div id='tYzAy'><tfoot id='tYzAy'></tfoot><dl id='tYzAy'><fieldset id='tYzAy'></fieldset></dl></div>
            • <bdo id='tYzAy'></bdo><ul id='tYzAy'></ul>

                本文介绍了python - os.getenv 和 os.environ 看不到我的 bash shell 的环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我在 ubuntu 13.04,bash,python2.7.4

                I am on ubuntu 13.04, bash, python2.7.4

                解释器看不到我设置的变量.

                这是一个例子:

                $ echo $A
                5
                $ python -c 'import os; print os.getenv( "A" )'
                None
                $ python -c 'import os; print os.environ[ "A" ]'
                Traceback (most recent call last):
                  File "<string>", line 1, in <module>
                  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
                    raise KeyError(key)
                KeyError: 'A'
                

                但是 PATH 变量一切正常:

                But everything works fine with the PATH variable:

                $ echo $PATH 
                /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
                $ python -c 'import os; print os.getenv("PATH")'
                /usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
                

                它会注意到 PATH 的变化:

                And it notices changes in PATH:

                $ PATH="/home/alex/tests/:$PATH"
                $ echo $PATH 
                /home/alex/tests/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
                $ python -c 'import os; print os.getenv("PATH")'
                /home/alex/tests/:/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
                

                可能出了什么问题?

                PS 使用 $PYTHONPATH 时出现问题:

                PS the problem comes when using $PYTHONPATH:

                $ python -c 'import os; print os.getenv("PYTHONPATH")'
                None
                

                推荐答案

                啊哈!解决方法很简单!

                Aha! the solution is simple!

                我用普通的 $ A=5 命令设置变量;当你使用 $ export B="foo" 一切都很好.

                I was setting variables with plain $ A=5 command; when you use $ export B="foo" everything is fine.

                那是 because export 使变量可用于子进程:

                That is because export makes the variable available to sub-processes:

                • 它在 shell 中创建一个变量
                • 导出到shell环境中
                • 环境被传递给 shell 的子进程.

                Plain $ A="foo" 只是在 shell 中创建变量,不对环境做任何事情.

                Plain $ A="foo" just creates variables in the shell and doesn't do anything with the environment.

                从 shell 调用的解释器从父 shell 获取它的环境.所以真的应该先将变量导出到环境中.

                The interpreter called from the shell obtains its environment from the parent -- the shell. So really the variable should be exported into the environment before.

                这篇关于python - os.getenv 和 os.environ 看不到我的 bash shell 的环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                env: python: No such file or directory(env: python: 没有这样的文件或目录)
                How to evaluate environment variables into a string in Python?(如何在 Python 中将环境变量评估为字符串?)
                Python - temporarily modify the current process#39;s environment(Python - 临时修改当前进程的环境)
                Change current process environment#39;s LD_LIBRARY_PATH(更改当前进程环境的 LD_LIBRARY_PATH)
                Reading and writing environment variables in Python?(在 Python 中读写环境变量?)
                When to use sys.path.append and when modifying %PYTHONPATH% is enough(何时使用 sys.path.append 以及何时修改 %PYTHONPATH% 就足够了)
              1. <legend id='Gvnwm'><style id='Gvnwm'><dir id='Gvnwm'><q id='Gvnwm'></q></dir></style></legend>

                  <i id='Gvnwm'><tr id='Gvnwm'><dt id='Gvnwm'><q id='Gvnwm'><span id='Gvnwm'><b id='Gvnwm'><form id='Gvnwm'><ins id='Gvnwm'></ins><ul id='Gvnwm'></ul><sub id='Gvnwm'></sub></form><legend id='Gvnwm'></legend><bdo id='Gvnwm'><pre id='Gvnwm'><center id='Gvnwm'></center></pre></bdo></b><th id='Gvnwm'></th></span></q></dt></tr></i><div id='Gvnwm'><tfoot id='Gvnwm'></tfoot><dl id='Gvnwm'><fieldset id='Gvnwm'></fieldset></dl></div>
                  <tfoot id='Gvnwm'></tfoot>
                    <tbody id='Gvnwm'></tbody>

                  <small id='Gvnwm'></small><noframes id='Gvnwm'>

                      <bdo id='Gvnwm'></bdo><ul id='Gvnwm'></ul>