在终端运行命令 python filename.py 时,将 Python3.6 设为默认解释器?

在终端运行命令 python filename.py 时,将 Python3.6 设为默认解释器?

我在 ubuntu 18.04 上有三个版本的 python,python -V在终端中运行时会产生Python 2.7.15rc1 ,运行时会python3 -V产生Python 3.7.2

你可以从这张图片中看到我的操作系统上的 Python 版本的路径这是截图

但在运行pip install package-namepip3 install package-name安装packagepython3.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

  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。

  2. 使用命令行选择默认的python:

    sudo update-alternatives --config python
    

    您将看到一个列表,并需要选择数字 1、2 或 3。

  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/pythonshebang 的脚本,而将其更改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]' {} \;

相关内容