Python3 仅在我转到 bash 然后 tcsh (anaconda) 时才在 tcsh 中打开
Python3 only opens in tcsh if I go to bash and then tcsh (anaconda)
我使用标准设置安装了anaconda3,主要使用tcsh。
如果终端在 tcsh 中打开,然后我输入 "conda" 它就可以了。
如果我输入 "python" 它会显示
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
但是,如果我输入 "bash",然后输入 "tcsh",然后输入 "python",它会显示:
Python 3.6.2 |Anaconda, Inc.| (default, Sep 21 2017, 18:29:43)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
作为参考,我的 .tcshrc 文件包含以下内容:
set path = ( $path anaconda3/bin . /opt/local/bin /opt/local/ncbi/blast )
alias python2 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
alias python3 '/opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5'
.bashrc 包含:
export PATH=~/anaconda3/bin:$PATH
.bash_profile 包含:
source ~/.bashrc
PATH=$PATH:$HOME/anaconda3/bin
export PATH="/anaconda3/bin:$PATH"
我是 Unix 和 Python 的新手,但需要在 bash 和 tcsh 中为 class 设置 anaconda。有什么想法吗?
更新:
当我在 tcsh 中启动终端时,"which python" 产生“/usr/bin/python”
如果我切换到 bash,"which python" 会产生“/anaconda3/bin/python”
"echo $PATH" 在 tcsh 中产生 "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:anaconda3/bin:.:/opt/local/bin:/opt/local/ncbi/blast"
"echo $PATH" 在 bash 产量
"/anaconda/bin:/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:anaconda3/bin:.:/opt/local/bin:/opt/local/ncbi/blast"
首先,请看一下这个问题及其答案,以了解 PATH
环境变量的工作原理:https://unix.stackexchange.com/questions/77898/how-does-the-path-enviroment-variable-work-in-linux.
您的问题是在您的 ~/.tcshrc
中您没有将 Anaconda 目录添加到您的 PATH
前面,因此 tcsh
首先找到系统安装并使用它。要解决此问题,您可以将该文件的第一行修改为:
setenv PATH ~/anaconda3/bin:$PATH:.:/opt/local/bin:/opt/local/ncbi/blast
在 tcsh
中,setenv
的作用与 bash
中的 export
相似,因此仅使用 set
不会可靠地改变您的 PATH
.
附带说明一下,您似乎一遍又一遍地对 bash
PATH
进行相同的修改...您可以稍微清理一下。
我使用标准设置安装了anaconda3,主要使用tcsh。 如果终端在 tcsh 中打开,然后我输入 "conda" 它就可以了。 如果我输入 "python" 它会显示
Python 2.7.10 (default, Feb 7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
但是,如果我输入 "bash",然后输入 "tcsh",然后输入 "python",它会显示:
Python 3.6.2 |Anaconda, Inc.| (default, Sep 21 2017, 18:29:43)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
作为参考,我的 .tcshrc 文件包含以下内容:
set path = ( $path anaconda3/bin . /opt/local/bin /opt/local/ncbi/blast )
alias python2 '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7'
alias python3 '/opt/local/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5'
.bashrc 包含:
export PATH=~/anaconda3/bin:$PATH
.bash_profile 包含:
source ~/.bashrc
PATH=$PATH:$HOME/anaconda3/bin
export PATH="/anaconda3/bin:$PATH"
我是 Unix 和 Python 的新手,但需要在 bash 和 tcsh 中为 class 设置 anaconda。有什么想法吗?
更新:
当我在 tcsh 中启动终端时,"which python" 产生“/usr/bin/python”
如果我切换到 bash,"which python" 会产生“/anaconda3/bin/python”
"echo $PATH" 在 tcsh 中产生 "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:anaconda3/bin:.:/opt/local/bin:/opt/local/ncbi/blast"
"echo $PATH" 在 bash 产量 "/anaconda/bin:/anaconda3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:anaconda3/bin:.:/opt/local/bin:/opt/local/ncbi/blast"
首先,请看一下这个问题及其答案,以了解 PATH
环境变量的工作原理:https://unix.stackexchange.com/questions/77898/how-does-the-path-enviroment-variable-work-in-linux.
您的问题是在您的 ~/.tcshrc
中您没有将 Anaconda 目录添加到您的 PATH
前面,因此 tcsh
首先找到系统安装并使用它。要解决此问题,您可以将该文件的第一行修改为:
setenv PATH ~/anaconda3/bin:$PATH:.:/opt/local/bin:/opt/local/ncbi/blast
在 tcsh
中,setenv
的作用与 bash
中的 export
相似,因此仅使用 set
不会可靠地改变您的 PATH
.
附带说明一下,您似乎一遍又一遍地对 bash
PATH
进行相同的修改...您可以稍微清理一下。