Python 请设置正确的环境变量路径
我正在执行以下命令:Python 请设置正确的环境变量路径,python,interpreter,pycharm,Python,Interpreter,Pycharm,我正在执行以下命令: print(os.environ["PATH"]) # returns '/usr/bin:/bin:/usr/sbin:/sbin' 但当我在shell中执行echo$PATH时,会返回: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin 我试着在Preferences>Console>Python Cons
print(os.environ["PATH"]) # returns '/usr/bin:/bin:/usr/sbin:/sbin'
但当我在shell中执行echo$PATH时,会返回:
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin
我试着在Preferences>Console>Python Console>Environment Variables的设置中编辑它
PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/usr/bin:/sbin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin
但这是行不通的
有什么想法吗?我在bash中使用命令行,我的环境(包括
$PATH
)在.bash\u profile
中设置。PyCharm中的默认终端是tcsh
。
我把它改成了bash
文件。。。默认设置。。。工具。。。终点站。。。外壳路径
然后重新开始。嵌入式终端按预期工作。@fj123x,我将从你的帖子中猜测你是
.zshrc
来解决这个根本问题。假设PyCharn位于应用程序文件夹中,打开/Applications/PyCharm.app/Contents/plugins/terminal/.zshrc
,并将内容替换为:
#!/bin/zsh
# starver mod
# Jetbrains uses jediterm as a java terminal emulator for all terminal uses.
# There are some apparent limits on use:
# - must use old-style shebang - not the #!/usr/bin/env zsh
# - must implement the startup file loading here
#
# Note: original contents are in lib/terminal.jar
# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
bindkey '^[^[[C' forward-word
bindkey '^[^[[D' backward-word
ZDOTDIR=$_OLD_ZDOTDIR
if [ -n "$JEDITERM_USER_RCFILE" ]
then
source "$JEDITERM_USER_RCFILE"
unset JEDITERM_USER_RCFILE
fi
if [ -n "$ZDOTDIR" ]
then
DOTDIR=$ZDOTDIR
else
DOTDIR=$HOME
fi
if [ -f "/etc/zshenv" ]; then
source "/etc/zshenv"
fi
if [ -f "$DOTDIR/.zshenv" ]; then
source "$DOTDIR/.zshenv"
fi
if [ -n $LOGIN_SHELL ]; then
if [ -f "/etc/zprofile" ]; then
source "/etc/zprofile"
fi
if [ -f "$DOTDIR/.zprofile" ]; then
source "$DOTDIR/.zprofile"
fi
fi
if [ -f "/etc/zshrc" ]; then
source "/etc/zshrc"
fi
if [ -f "$DOTDIR/.zshrc" ]; then
source "$DOTDIR/.zshrc"
fi
if [ -n $LOGIN_SHELL ]; then
if [ -f "/etc/zlogin" ]; then
source "/etc/zlogin"
fi
if [ -f "$DOTDIR/.zlogin" ]; then
source "$DOTDIR/.zlogin"
fi
fi
if [ -n "$JEDITERM_SOURCE" ]
then
source $(echo $JEDITERM_SOURCE)
unset JEDITERM_SOURCE
fi
如果你对所有的血淋淋的细节感兴趣,或者你想看看我是如何解决这个问题的,这样你就可以为另一个shell开发一个解决方案,请看下面的答案:在Ubuntu上,使用zsh,我偶然发现了同样的问题 为了在PyCharm和我的shell中使用相同的环境变量,我使用的黑客方法是从我的终端启动PyCharm,而不是使用图标。看起来PyCharm shell是从它启动的主shell继承的
我希望它能解决其他人的问题,因为我无法在Linux上复制@Steve Tarver的解决方案(…/terminal/.zshrc在/snap/上是只读的,即使在使用sudo时也是如此)。试试
os.environ['PATH']
和os.system(“echo$PATH”)
。。。它们应该是相同的…@JoranBeasley我想设置PATHfile>设置,然后“项目解释器>python解释器”选择您的解释器(可能只有一个),在屏幕的下半部分有两个选项卡。。。单击路径,然后单击加号将其添加到。。。前面的评论更多的是为了证明os.environ['PATH']
应该绝对匹配echo$PATH
,而不是建议一个解决方案。请参考PyCharm中的最佳答案,默认情况下,我的shell路径设置为/bin/bash
,我仍然存在$PATH
问题/不匹配。我在Windows中也有同样的问题。在安装了一些东西并更新了我的路径之后,PyCharm终端没有得到更新,甚至在重新启动PyCharm之后也没有得到更新。但是,在按照您的建议从终端执行PyCharm后,它正确地从路径中选择了环境变量。之后,像往常一样从我的桌面快捷方式启动PyCharm,效果很好,并选择了所有环境变量。所以你的黑客帮了我。