我在 ubuntu 18.04 上有三个版本的 python,python -V
在终端中运行时会产生Python 2.7.15rc1
,运行时会python3 -V
产生Python 3.7.2
你可以从这张图片中看到我的操作系统上的 Python 版本的路径这是截图
但在运行pip install package-name
或pip3 install package-name
安装package
时python3.6
,
现在所有软件包都安装在 python3.6 上我想在 python3.6 的终端上运行我的程序,Python 2.7.15rc1
而不是Python 3.7.2
如图所示
我的问题是:
当我运行 时python filename.py
,它会进行解释,Python 2.7.15rc1
因此会产生一个错误,提示未找到包,并且当运行python3 filename.py
它时也会进行解释Python 3.7.2
,并且会产生一个错误,提示未找到包
现在我想将Python3.6
其设置为在终端中运行程序时的默认解释器,因为它已安装所有软件包!
答案1
添加 python 的替代品……
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 3
请注意这些数字:1、2、3。如果需要,请添加其他替代方案,并记住增加数字。还请注意,
/usr/bin/python3.6
上述命令中的路径必须指向系统上安装的 Python。使用命令行选择默认的python:
sudo update-alternatives --config python
您将看到一个列表,并需要选择数字 1、2 或 3。
或者,如果您想使用 GUI 来切换默认的 Python……
sudo apt install galternatives
然后启动 Alternatives Configurator 应用程序,向下滚动到“python”并选择要使用的 python。
答案2
在您的系统上,/usr/bin/python3
可能有一个指向 的链接/usr/bin/python3.7
,可以将其更改为/usr/bin/python3.6
。您还会发现/usr/bin/python
是一个指向/usr/bin/python2.7
×的链接
的链接python3
可以更改为,/usr/bin/python3.6
但将python
其默认为则python3
充满危险,因为您的系统可能有为 python v2(*) 编写的带有#! /usr/bin/python
shebang 的脚本,而将其更改python
为 python V3 解释器会破坏它们。
另一个解决方案是定义一个 shell 别名(在 .bashrc 中)
alias python3=/usr/bin/python3.6
alias python=/usr/bin/python3.6
这个解决方案的好处是它只改变了python
交互式 shell 的含义,在脚本中别名会被忽略,而您仍然使用默认python
解释器,因此不会破坏任何东西。
(*)通过以下方式查找:
find /usr/ -type f -executable -exec grep -E -l '#!.+python[^3]' {} \;