无法在 ubuntu 中将默认 python 版本设置为 python3

Unable to set default python version to python3 in ubuntu

我试图在 Ubuntu 16.04 中将默认 python 版本设置为 python3。默认情况下它是 python2 (2.7)。我按照以下步骤操作:

update-alternatives --remove python /usr/bin/python2
update-alternatives --install /usr/bin/python python /usr/bin/python3

但是第二个语句出现以下错误,

rejeesh@rejeesh-Vostro-1015:~$ update-alternatives --install /usr/bin/python python /usr/bin/python3
update-alternatives: --install needs <link> <name> <path> <priority>

Use 'update-alternatives --help' for program usage information.   

要更改为python3,您可以在终端alias python=python3中使用以下命令。

编辑:

这是我年轻天真时写的,update-alternatives 是更好的方法。请参阅@Pardhu 的回答。


过时的答案:

Open your .bashrc file nano ~/.bashrc. Type alias python=python3 on to a new line at the top of the file then save the file with ctrl+o and close the file with ctrl+x. Then, back at your command line type source ~/.bashrc. Now your alias should be permanent.

如其所说,update-alternatives --install 需要 参数。

您有 link (/usr/bin/python)、名称 (python) 和路径 (/usr/bin/python3),您缺少优先级。

update-alternatives --help 说:

<priority> is an integer; options with higher numbers have higher priority in automatic mode.

所以只需要在末尾放一个100之类的东西

更新:
自 Ubuntu 20.04 以来,python3 是默认版本,但默认情况下,python 仍未注册为 python3。为了做到这一点,你可以简单地做:

sudo apt install python-is-python3

有关更多信息,您可以查看 this
旧方法:

cd ~
gedit .bash_aliases

然后写

alias python=python3

alias python='/usr/bin/python3'

保存文件,关闭终端再打开。
你现在应该没事了! Link

一个简单安全的方法是使用别名。将其放入 ~/.bashrc 文件中: 如果你有 gedit 编辑器使用

gedit ~/.bashrc

进入 bashrc 文件,然后在 bashrc 文件的顶部进行以下更改。

alias python=python3

在文件中添加以上内容后。 运行 下面的命令

source ~/.bash_aliases or source ~/.bashrc

示例:

$ python --version

Python 2.7.6

$ python3 --version

Python 3.4.3

$ alias python=python3

$ python --version

Python 3.4.3

作为附加项,您还可以为 pip 添加别名(在 .bashrc 或 bash_aliases 中):

alias pip='pip3'

你们很多人发现 python3 的全新安装实际上指向 python3.x 所以你可能需要:

alias pip='pip3.6'
alias python='python3.6'

提到的第二行可以改成

[sudo] update-alternatives --install /usr/bin/python python /usr/bin/python3 10

这为 python3 的路径提供了 10 的优先级。

交替编辑 .bashrc 的缺点是使用带有 sudo 的命令将不起作用。

获取python路径
ls /usr/bin/python*

然后设置您的 python 版本

alias python="/usr/bin/python3"

对于另一种非侵入性、仅限当前用户的方法:

# First, make $HOME/bin, which will be automatically added to user's PATH
mkdir -p ~/bin
# make link actual python binaries
ln -s $(which python3) python
ln -s $(which pip3) pip

python pip 将在新的 shell 中准备就绪。

ubuntu 18.04 中适用于所有用户的最佳方式是

sudo vim /etc/bash.bashrc
add lines
alias python=python3
alias pip=pip3

保存更改并重新启动。

重新启动后,系统中 python 3 的任何版本以及 python 2.7 都将被视为默认版本。如果您有 python 3.

的多个版本,您可以通过在别名中说以下内容来更具体
sudo vim /etc/bash.bashrc
add lines
alias python=python3.6
alias pip=pip3.6

将 Python 3.6.8 更改为 Ubuntu 18.04 中的默认设置为 Python 3.7.

安装Python3.7

安装 Python3.7 并将其配置为默认解释器的步骤。

  1. 使用 apt-get 安装 python3.7 包

    sudo apt-get install python3.7

  2. 将 Python3.6 & Python 3.7 添加到 update-alternatives

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  1. 更新 Python 3 指向 Python 3.7

    sudo update-alternatives --config python3 输入 2 表示 Python 3.7

  2. 测试版本python

python3 --version
Python 3.7.1 

首先,确保Python3已安装在您的计算机上

转到您的终端并输入:

cd ~/ 转到您的主目录

如果您尚未设置 .bash_profile,请键入 touch .bash_profile 以创建您的 .bash_profile.

或者,键入 open -e .bash_profile 来编辑文件。

复制并保存 alias python=python3 到 .bash_profile。

关闭并重新打开您的终端。然后键入以下命令来检查 Python3 是否是您现在的默认版本:

python --version

您应该看到 python 3.x.y 是您的默认版本。

干杯!

首次安装 python3 和 pip3

sudo apt-get install python3 python3-pip

然后在您的终端中 运行

alias python=python3

检查您机器中 python 的版本。

python --version

只需按照以下步骤将默认 python 更改为新升级的 python 版本。对我来说效果很好。

  • sudo apt-install python3.7安装你想要的python最新版本
  • cd /usr/bin进入安装python的根目录
  • sudo unlink pythonsudo unlink python3 。取消链接当前默认 python
  • sudo ln -sv /usr/bin/python3.7 python Link 新下载的 python 版本
  • python --version 检查新的 python 版本就可以了

如果您有 Ubuntu 20.04 LTS (Focal Fossa),您可以安装 python-is-python3:

sudo apt install python-is-python3

/usr/bin/python 中的符号链接替换为指向 /usr/bin/python3

只需删除 python-is-python2:

sudo apt purge python-is-python2

并安装 python-is-python3:

sudo apt install python-is-python3

它将自动转换到新 python3。您可以选择稍后删除剩余的包:

sudo apt autoremove && sudo apt autoclean

要将 Python 3.6.8 从 Python 2.7 更改为 Ubuntu 18.04 中的默认设置,您可以尝试使用命令行工具 update-alternatives.

sudo update-alternatives --config python

如果您收到错误消息“python 没有替代方案”,请使用以下命令自行设置替代方案:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2

将路径 /usr/bin/python3 相应地更改为所需的 python 版本。

最后一个参数指定它的优先级意味着,如果没有手动选择备选方案,将设置具有最高优先级编号的备选方案。在我们的例子中,我们为 /usr/bin/python3.6.8 设置了优先级 2,因此 /usr/bin/python3.6.8 被 update-alternatives 命令自动设置为默认 python 版本。

我们可以随时在上面列出的 python 替代版本之间切换,使用以下命令并输入选择编号:

update-alternatives --config python

您没有包含优先级参数

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 5

您可以将 5 替换为任何您想要的优先级。优先级较高的备选方案优先于优先级较低的备选方案。

在 Linux 终端中设置默认 python 的优先级,方法是添加:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 1

在这里,我们将 python3 设置为优先级 10,将 python2 设置为优先级 1。这将使 python3 成为默认值 python。如果您希望 Python2 作为默认值,则将 python2 的优先级设置为高于 python3

这是一种适合我的简单方法。

sudo ln -s /usr/bin/python3 /usr/bin/python

您可以将 /usr/bin/python3 路径更改为 python3(或您想要的版本)。

但请记住,update-alternatives 可能是最佳选择。

在我的例子中,当我在我的终端中 运行 这个命令时发生了 " 别名 python=python3 "

sudo rm /usr/bin/python3 #remove existing link
sudo ln /usr/bin/python3.8 /usr/bin/python3 # create a new link to the version of your choice

如果有可能直接使用特定的 python 版本,与 update-alternativesalias 解决方案相比,我会选择它。

例如

python3.6 -m pip install pytest
ptyhon3.6 -m pytest test_sample.py

-m 执行特定 python 版本的特定模块。 第一行将在可能的位置 /home/user/.local/lib/python3.5/site-packages

为特定版本和用户安装 pytest
       ~$ sudo apt-get install python3.9
/usr/bin$ cd /usr/bin
/usr/bin$ sudo unlink python3
/usr/bin$ sudo ln -sv /usr/bin/python3.9 python3
/usr/bin$ python3 --version
          Python 3.9.5
/usr/bin$ pip3 --version
          pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.9)