【问题标题】:How to change the default python version in Raspberry Pi如何在 Raspberry Pi 中更改默认 python 版本
【发布时间】:2020-06-09 05:36:25
【问题描述】:

一天前我全新安装了 Raspberry Pi OS Buster,之后我按照本教程在我的 Raspberry pi 中安装了 Python3.8。 https://installvirtual.com/how-to-install-python-3-8-on-raspberry-pi-raspbian/

我在 bashrc 中添加了 python 别名。

echo "alias python=/usr/local/bin/python3.8" >> ~/.bashrc
source ~/.bashrc

现在在显示Python 3.8.0 (default, Jun 8 2020, 13:17:16)的终端中输入python

但是当我运行 python3 时,它显示 Python Python 3.7.3

我在上面的命令之后添加了指向 python3.8 的 python3 别名,但仍然没有运气。 Geany 的程序仍然显示 3.7。我将 Geany 的 bulid 命令更改为 python(因为我将默认 python 设置为 3.8)

#!/usr/local/bin/python3.8

import sys
print("Python version")
print (sys.version)

Python 版本 3.7.3(默认,2019 年 12 月 20 日,18:57:59)

我有两个问题:

  1. 如何在Python3.8中运行程序?

  2. 我可以卸载python3.7吗?

【问题讨论】:

  • 什么?内容与标题完全不符。
  • 标题与问题完全不符
  • 对不起,我正在编辑一个半编辑的前一个问题,不小心更改了标题。我现在已经编辑了标题。
  • @Shyam3089 :首先验证您的别名的实际设置(通过输入alias python3)。它应该显示一条消息,说 alias python3=/usr/local/bin/python3.8。然后通过python3 --version 验证版本。话虽如此,我必须补充一点,您有一种不寻常的方式来编辑您的.bashrc。当然你可以这样做,但是存在称为文本编辑器的程序,使用它们编辑文件要容易得多,而不是使用shell中的命令......
  • 是的,它显示别名 python3='/usr/local/bin/python3.8'。 python3 --version 显示Python 3.8.0. 其实我用nano 编辑.bashrc

标签: python python-3.x bash raspberry-pi python-3.8


【解决方案1】:

对于那些喜欢直接使用文件系统的人,这是我所做的:

  • 类型:sudo rm /usr/bin/python
  • 类型:sudo ln -s /usr/bin/python3 /usr/bin/python
  • 类型:ls -l /usr/bin/python
    • lrwxrwxrwx 1 root root 16 Jan 18 11:04 /usr/bin/python -> /usr/bin/python3
  • 类型:python -V
    • Python 3.7.3
  • 替代方式:
    • 类型:sudo update-alternatives --config python
    • 就我而言,找不到替代品...

当你这样做的时候,将pip默认更改为pip3,过程略有不同...

  • 类型:sudo mv /usr/bin/pip /usr/bin/pip2 # rename
  • 类型:sudo ln -s /usr/bin/pip3 /usr/bin/pip
  • 类型:ls -l /usr/bin/pip
    • lrwxrwxrwx 1 root root 13 Jan 18 11:19 /usr/bin/pip -> /usr/bin/pip3
  • 类型:pip -V
    • pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)
    • 注意:pip2 因切换到默认 python3 而感到困惑,因为它以:#!/usr/bin/python 开头

【讨论】:

  • 恕我直言,应该指出的是,手动处理组件配置通常是通过包分发机制处理的,这对于分发工具和数据的健全性通常是一个坏主意。请在此处小心操作。
【解决方案2】:

我还没有看到 Raspberry Pi Foundation 提供的关于更改哪个 Python 版本处于活动状态的“官方”解决方案。

我不会详细说明为什么您可能不应该使用别名来运行 python,但会回答更重要的名义问题。

我们似乎想为python 二进制文件添加我们想要的“alternatives”版本。

在全新的 Raspberry Pi OS 安装中,您只需要一个命令:

# Adds `python3` as the alternate for `python` with priority `3`.
sudo update-alternatives --install $(which python) python $(readlink -f $(which python3)) 3

您还可以为python 添加任意数量的其他替代项:

# Adds `python3.8` as the alternate for `python` with priority `3`.
sudo update-alternatives --install $(which python) python $(readlink -f $(which python3.8)) 3

为了更好,您可能还应该添加python2,以较低的优先级:

# Adds `python2` as the alternate for `python` with priority `2`.
sudo update-alternatives --install $(which python) python $(readlink -f $(which python2)) 2

默认情况下,上面会自动选择最高优先级的替代方案。 要手动选择系统范围的版本,请使用:

sudo update-alternatives --config python

您可以根据自己的需要选择不同的优先级。 但是,我注意到许多其他“替代方案”(尤其是editor)通常使用10 的倍数作为官方建议的版本。 保持您的优先级值较低可能意味着此(如果发生)的官方实现将是兼容的。 你也可以选择更大的数字...

备注

dpkg -S /usr/bin/python 报告它属于python-minimal,但卸载会从机器中删除所有python2(带有autoremove)。 python3-minimal 也不能解决任何问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2017-12-03
    • 2017-12-13
    • 2018-04-10
    • 1970-01-01
    • 2014-07-18
    • 2020-05-25
    • 1970-01-01
    相关资源
    最近更新 更多