Pycharm设置正确的环境变量PATH

时间:2014-02-05 15:21:03

标签: python interpreter pycharm

我正在使用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

但这不起作用

任何想法?

3 个答案:

答案 0 :(得分:2)

@ fj123x,我将从您的帖子中猜测您是

  1. 在Mac上
  2. 使用bash(也许是zsh)以外的其他外壳

如果为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也是如此。)