我正在使用WSL,如何通过控制台升级Python到最新版本?

9

我正在使用WSL,如何通过控制台升级Python到最新版本?

目前我有3.8.10


你不需要“升级”Python,只需获取一个新的解释器。 - juanpa.arrivillaga
你正在使用的发行版提供了Python 3.8。如果你想要其他版本,可以使用Anaconda或从Python官网下载。 - MSH
1
请澄清您的具体问题或提供额外的细节,以准确突出您所需的内容。目前的描述不够清晰,很难确定您在询问什么。 - Community
4个回答

25

我尝试了以下步骤,它成功了。

注意: 在第3步中,您只需要更改要安装的版本即可。

安装步骤

在WSL终端中运行以下命令:

# Update package lists{
sudo apt update

# Install dependent libraries:
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev curl libbz2-dev

# Download Python binary package:
wget https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz

# Unzip the package:
tar -xzf Python-3.10.8.tgz

# Execute configure script
cd Python-3.10.8
./configure --enable-optimizations

# Build Python 3.10
make -j 2

# Install Python 3.10
sudo make install

# Verify the installation
python3.10

您应该看到:
Python 3.10.8 (default, october 15 2022, 14:44:10)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

如果您想将 Python 3.10 设置为在键入“python”时运行的默认版本,则可以按照以下步骤操作:
  1. Change ~/.bashrc file to add the following line:

    alias python='/usr/local/bin/python3.10'
    
  2. And then run the following command to have it take effect in the current shell:

    source ~/.bashrc
    
  3. You can verify it using the python --version command, which should now show:

    Python 3.10.8
    

本文最初发表在这篇文章中。


1
谢谢你修复这个问题!已点赞-虽然不是我最喜欢的解决方案,但它确实是一个解决方案;-)请注意你有一些格式上的问题-我会为你修复,但在发表未来的问题和答案时请记住这一点。谢谢! - NotTheDr01ds
如果可能的话,我想避免构建。然而,根据链接https://www.spencerharston.com/posts/updating-python-on-ubuntu-20-04-on-wsl2/,这是官方的方法。因此,建议的方法是升级最安全的方式。 - user3613932

1
一些注记--首先,引用@juanpa.arrivillaga的评论:

你不是“升级”Python,而是获得一个新的解释器

当然,“升级”这个词意味着用后/更高版本替换一个版本。你不想这样做。在大多数Linux发行版中,许多软件包都依赖于Python,并且这些发行版通常会针对特定的Python版本进行严格测试。您没有提到在WSL中使用哪个Linux发行版,但由于Ubuntu是默认的,我们将假设是它。要查看当前在Ubuntu中安装的所有依赖于Python的软件包列表,请运行:
apt-cache rdepends python3 | grep -v python | less

来自这个Ask Ubuntu回答

你真正想做的,很可能是为了特定用途而访问第二(或第三)个Python版本。有多种方法可以做到这一点。我建议阅读Ask Ubuntu上如何使用apt-get安装不同的Python版本?的答案。那里也有一些不错的方法。我的解决方案是使用Docker Python镜像--目前支持的每个Python版本(甚至包括一些不受支持的Python2版本)都有可用的镜像。


0

非常感谢您提供的出色指导!

顺便说一下:我还需要手动将pip软链接添加到/usr/local/bin中。在我的情况下,当我尝试安装pytorch(在python3.10上)时,我遇到了文件找不到的问题。 enter image description here


0
我不确定其他人是否想得太多了,WSL发生了变化,还是我的发行版(Debian)表现良好?
我只是运行了这个命令,Python3从3.9升级到了3.11:
sudo apt update
sudo apt upgrade

正如其他人所说,由于Python的变化方式,这可能会失去一些向后兼容性,但如果你不担心这个问题,那么这应该没问题。
另外可能有助于顺利运行的是,我已经定义了所有这些存储库。
deb http://deb.debian.org/debian bullseye main
deb http://deb.debian.org/debian bullseye-updates main
deb http://security.debian.org/debian-security/ bullseye-security main
deb http://ftp.debian.org/debian bullseye-backports main
deb http://ftp.debian.org/debian stable main contrib non-free

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接