同一机器上安装多个Python版本?

144 投票
11 回答
260173 浏览
提问于 2025-04-15 21:03

请问在Python官网上有没有关于如何在Linux系统上安装和运行多个版本的Python的官方文档?

我能找到很多博客和答案,但我想知道有没有一个“标准”的官方方法来做到这一点?

还是说这完全取决于操作系统?

11 个回答

32

在Windows系统上,Python会安装在不同的文件夹里,比如“C:\python26”和“C:\python31”,但是它们的执行文件名字都是“python.exe”。

为了方便使用,我创建了一个新的文件夹“C:\python”,里面放了两个文件“python.bat”和“python3.bat”,这两个文件分别用来调用“python26”和“python31”。然后,我把“C:\python”添加到了PATH环境变量中。

这样一来,我只需要在我的.bat文件中输入pythonpython3,就可以启动我想要的Python版本了。

在Linux系统中,你可以使用#!这个小技巧来指定你希望脚本使用哪个版本的Python。

37

更新于2019年:使用 asdf

现在我建议使用 asdf 来安装不同版本的Python解释器,这样可以把它们放在一起使用。

注意1:asdf 不仅适用于Python,还适用于所有主要编程语言。

注意2:asdf 可以和流行的包管理工具一起使用,比如 pipenvpoetry

如果你已经 安装了asdf,那么你可以很方便地下载和安装新的Python解释器:

# Install Python plugin for asdf:
asdf plugin-add python

# List all available Python interpreters:
asdf list-all python

# Install the Python interpreters that you need:
asdf install python 3.7.4
asdf install python 3.6.9
# etc...

# If you want to define the global version:
asdf global python 3.7.4

# If you want to define the local (project) version:
# (this creates a file .tool-versions in the current directory.)
asdf local python 3.7.4

旧答案:从源代码安装Python

如果你需要在Unix系统上安装多个Python版本(除了主版本之外):

  1. 安装源代码编译所需的包

    $ sudo apt-get install build-essential checkinstall $ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

  2. 下载并解压所需的Python版本

Python官网 下载Linux的源代码包,并将其移动到 /usr/src 目录。

在该位置解压下载的包。(将'x'替换为你下载的版本号)

$ sudo tar xzf Python-x.x.x.tgz
  1. 编译并安装Python源代码

    $ cd Python-x.x.x $ sudo ./configure $ sudo make altinstall

你新的Python可执行文件现在位于 /usr/local/bin。你可以测试一下新版本:

$ pythonX.X -V
Python x.x.x
$ which pythonX.X
/usr/local/bin/pythonX.X

# Pip is now available for this version as well:
$ pipX.X -V
pip X.X.X from /usr/local/lib/pythonX.X/site-packages (python X.X)
110

我觉得这些版本是完全独立的。你只需要安装它们,就能使用像 /usr/bin/python2.5/usr/bin/python2.6 这样的命令。然后把 /usr/bin/python 链接到你想要作为默认使用的版本上。

所有的库文件其实都在不同的文件夹里(文件夹名字是根据版本来的)。

如果你想手动编译这些版本,这里有一段来自Python源代码的说明:

安装多个版本

在Unix和Mac系统上,如果你打算使用相同的安装前缀(也就是给配置脚本的 --prefix 参数)来安装多个Python版本,你需要注意不要让你的主要Python可执行文件被其他版本的安装覆盖。使用 make altinstall 安装的所有文件和目录都会包含主要和次要版本号,因此它们可以并存。 make install 还会创建 ${prefix}/bin/python3,这个指向 ${prefix}/bin/pythonX.Y。如果你打算使用相同的前缀安装多个版本,你必须决定哪个版本(如果有的话)是你的“主要”版本。使用 make install 安装这个版本。其他所有版本则使用 make altinstall 安装。

举个例子,如果你想安装Python 2.5、2.6和3.0,而2.6是主要版本,你就需要在2.6的构建目录中执行 make install,而在其他版本中执行 make altinstall

撰写回答