调用本机 Python 解释器而不是 Anaconda

调用本机 Python 解释器而不是 Anaconda

我在 Ubuntu 上安装了 anaconda3。除了一个小问题外,一切都运行正常。当使用命令“python”运行某个任意 python 文件时,它会使用 anaconda 而不是原生 2.7 python 解释器来运行 python3。我该如何改变这种情况?
换句话说:
现在发生了什么:

python ex.py

ex.py 由 anaconda3 运行

python2.7 ex.py

ex.py 由 python2.7 运行

python3 ex.py

ex.py 由 anaconda3 运行

我希望发生什么:

python ex.py

ex.py 由 python2.7 运行

python2.7 ex.py

ex.py 由 python2.7 运行

python3 ex.py

ex.py 由 anaconda3 运行

答案1

从输出可以看出echo $PATH

/home/john/anaconda3/bin:/home/john/.local/share/umake/bin:/‌​home/john/bin:/home/‌​john/.local/bin:/usr‌​/local/sbin:/usr/loc‌​al/bin:/usr/sbin:/us‌​r/bin:/sbin:/bin:/us‌​r/games:/usr/local/g‌​ames:/snap/bin

目录/home/john/anaconda3/bin首先出现,并且由于相关的python(类似于python2)和python3二进制文件存在于目录中,所以您的所有python脚本都由该目录中的二进制文件解释,而不是python-minimalpython2)和python3-minimalpython3)包附带的系统范围的脚本,并且存在/usr/binPATH.

你需要:

  • 要么使用系统的完整路径

或者

  • /home/john/anaconda3/bin从中删除目录PATH,将以下内容附加到~/.bashrc

    export PATH='/home/john/.local/share/umake/bin:/‌​home/john/bin:/home/‌​john/.local/bin:/usr‌​/local/sbin:/usr/loc‌​al/bin:/usr/sbin:/us‌​r/bin:/sbin:/bin:/us‌​r/games:/usr/local/g‌​ames:/snap/bin'
    

    你可以做:

    echo "export PATH='<above_path_here>'" >>~/.bashrc
    

    不确定是否要保留“/home/john/.local/share/umake/bin”,请做出选择。


只是为了完整性起见,python2python3实际上都符号链接到系统中存在的各自的最新二进制文件。

答案2

在这种情况下,您需要停用 conda 环境。
最好的建议是仅在需要时才激活您的 conda 环境(conda activate.bashrc文件中删除),这样,python 系统将可用于操作系统的常见任务,而不会出现问题或意外行为。

相关内容