Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 请设置正确的环境变量路径_Python_Interpreter_Pycharm - Fatal编程技术网

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,我将从你的帖子中猜测你是

  • 在mac上
  • 使用bash以外的shell(可能是zsh)
  • 如果为true,则问题在于JetBrains终端仿真器没有以正确的顺序执行所有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
    

    如果你对所有的血淋淋的细节感兴趣,或者你想看看我是如何解决这个问题的,这样你就可以为另一个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,效果很好,并选择了所有环境变量。所以你的黑客帮了我。