gpt4 book ai didi

python没有获取环境变量,但它是在mac os上设置的

转载 作者:行者123 更新时间:2023-12-01 06:02:21 32 4
gpt4 key购买 nike

如果我运行 env 命令,我将获得以下输出:

TERM_PROGRAM=Apple_Terminal
GPG_AGENT_INFO=/Users/paganotti/.gnupg/S.gpg-agent:346:1
TERM=xterm-color
SHELL=/bin/bash
TMPDIR=/var/folders/BM/BMT-0W4+H5yVS5fJngFdsk+++TI/-Tmp-/
Apple_PubSub_Socket_Render=/tmp/launch-V50MvM/Render
TERM_PROGRAM_VERSION=273.1
USER=paganotti
COMMAND_MODE=unix2003
SSH_AUTH_SOCK=/tmp/launch-llkTBf/Listeners
__CF_USER_TEXT_ENCODING=0x1F5:0:0
PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:/opt/local/bin:/opt/local/sbin:/Library/Frameworks/Python.framework/Versions/3.2/bin:/Users/paganotti/Documents/Project/ZendFramework-1.11.11-minimal/bin/zf.sh:/opt/local/bin:/opt/local/sbin:/opt/local/bin:/opt/local/sbin://usr/local/git/bin/git:/Library/Frameworks/Python.framework/Versions/3.1/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/local/ImageMagick/bin:/usr/local/MacGPG2/bin:/usr/texbin:/usr/X11/bin:/Users/paganotti/Sviluppo/android-sdk-1.5_r3/tools
PWD=/Users/paganotti
LANG=it_IT.UTF-8
SHLVL=1
HOME=/Users/paganotti
LOGNAME=paganotti
GIT_PYTHON_GIT_EXECUTABLE=/usr/local/git/bin/git
DISPLAY=/tmp/launch-aqcM4a/org.x:0
_=/usr/bin/env

我尝试使用 python 获取 GIT_PYTHON_GIT_EXECUTABLE 变量:

    GIT_PYTHON_GIT_EXECUTABLE = os.getenv('GIT_PYTHON_GIT_EXECUTABLE')
print GIT_PYTHON_GIT_EXECUTABLE

但输出打印:

    None

因为好像没有查看GIT_PYTHON_GIT_EXECUTABLE变量?怎么了?

更新

我在 pycharm 中设置了环境变量,现在它读取了该变量,但在我的实际应用程序中,我使用 pyqt 库的 QThread 类。我的应用程序构建在 pyqt 库之上,启动时它执行 Qthread。在 Qthread 中将执行 gitpython 函数。 GitPython 函数启动一个子进程并尝试读取 GIT_PYTHON_GIT_EXECUTABLE,但它无法读取变量。

最佳答案

为了让 python 解释器能够访问您设置的环境变量,您必须在调用 Pycharm 之前设置环境,并且必须从设置环境变量的 shell 运行 Pycharm。否则 Pycharm 将无法访问该变量,其任何子进程 (python) 也将无法访问该变量。

原因是当你设置一个环境变量时,它对于整个机器来说并不是全局的,而只是对于当前 shell 及其子进程而言。每个子进程仅在启动时获取父进程环境的快照。父进程中环境的 future 变化不会反射(reflect)在子进程中(反之亦然)。

您可以通过编辑主目录中名为 .profile(如果您使用的是 bash,最好是 .bash_profile)的文件,使该变量对整个系统全局。如果它们不存在,则创建它们。在文件中只需添加所需的导出命令。当您首次登录计算机时,此文件将被执行(因此您需要重新登录才能使其工作)。您登录后的所有 future 程序都将有权访问配置文件中设置的环境变量。这是有效的,因为当您登录时,会生成一个新的 shell,您运行的所有其他进程都将从该 shell 中运行。

关于python没有获取环境变量,但它是在mac os上设置的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706140/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com