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

2024-10-03 06:27:46 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我运行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_可执行变量:

^{pr2}$

但输出打印:

    None

因为它似乎没有查看GIT_PYTHON_GIT_可执行变量? 怎么了?在

更新

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


Tags: gitbinusrlocallibraryframeworklaunchusers
1条回答
网友
1楼 · 发布于 2024-10-03 06:27:46

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

原因是,当您设置一个环境变量时,它并不是整个机器的全局变量,而是当前shell及其子进程的全局变量。每个子进程在启动时只获取父进程环境的快照。将来对父进程中环境的更改不会反映在子进程中(反之亦然)。在

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

相关问题 更多 >