我在 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/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
目录/home/john/anaconda3/bin
首先出现,并且由于相关的python
(类似于python2
)和python3
二进制文件存在于目录中,所以您的所有python
脚本都由该目录中的二进制文件解释,而不是python-minimal
(python2
)和python3-minimal
(python3
)包附带的系统范围的脚本,并且存在/usr/bin
于PATH
.
你需要:
- 要么使用系统的完整路径
或者
/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/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin'
你可以做:
echo "export PATH='<above_path_here>'" >>~/.bashrc
不确定是否要保留“/home/john/.local/share/umake/bin”,请做出选择。
只是为了完整性起见,python2
和python3
实际上都符号链接到系统中存在的各自的最新二进制文件。
答案2
在这种情况下,您需要停用 conda 环境。
最好的建议是仅在需要时才激活您的 conda 环境(conda activate
从.bashrc
文件中删除),这样,python 系统将可用于操作系统的常见任务,而不会出现问题或意外行为。