我正在使用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
我尝试在偏好设置>中编辑它控制台> Python控制台>环境变量,设置
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:/opt/local/sbin
但这不起作用
任何想法?
答案 0 :(得分:2)
@ fj123x,我将从您的帖子中猜测您是
如果为true,则问题是JetBrains jediterm终端仿真器未按正确的顺序执行所有Shell启动文件。
如果使用的是zsh,则可以通过编辑终端插件的.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
如果您对所有详细信息感兴趣,或者想了解我如何解决此问题,以便为其他外壳开发解决方案,请参见以下答案:https://stackoverflow.com/a/51006003/1089228
答案 1 :(得分:1)
我在bash中使用命令行,我的环境(包括$PATH
)在.bash_profile
中设置。 PyCharm 中的默认终端为tcsh
。
我把它变成了bash
文件...默认设置...工具...终端... Shell路径
然后重新开始。嵌入式终端按预期工作。
答案 2 :(得分:1)
在Ubuntu上,使用zsh,我偶然发现了相同的问题。
为了在PyCharm中具有相同的环境变量而使用的技巧,而我的shell是从终端启动PyCharm而不是使用图标。看起来PyCharm Shell就是从启动它的主Shell继承的。
我希望它可以解决其他人的问题,因为我无法在Linux上复制@Steve Tarver的解决方案(... / terminal / .zshrc在/ snap /上是只读的,即使使用sudo也是如此。)>