同一机器上安装多个Python版本?
请问在Python官网上有没有关于如何在Linux系统上安装和运行多个版本的Python的官方文档?
我能找到很多博客和答案,但我想知道有没有一个“标准”的官方方法来做到这一点?
还是说这完全取决于操作系统?
11 个回答
在Windows系统上,Python会安装在不同的文件夹里,比如“C:\python26”和“C:\python31”,但是它们的执行文件名字都是“python.exe”。
为了方便使用,我创建了一个新的文件夹“C:\python”,里面放了两个文件“python.bat”和“python3.bat”,这两个文件分别用来调用“python26”和“python31”。然后,我把“C:\python”添加到了PATH
环境变量中。
这样一来,我只需要在我的.bat文件中输入python
或python3
,就可以启动我想要的Python版本了。
在Linux系统中,你可以使用#!
这个小技巧来指定你希望脚本使用哪个版本的Python。
更新于2019年:使用 asdf
现在我建议使用 asdf 来安装不同版本的Python解释器,这样可以把它们放在一起使用。
注意1:asdf
不仅适用于Python,还适用于所有主要编程语言。
注意2:asdf
可以和流行的包管理工具一起使用,比如 pipenv 和 poetry。
如果你已经 安装了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版本(除了主版本之外):
安装源代码编译所需的包
$ 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
下载并解压所需的Python版本
从 Python官网 下载Linux的源代码包,并将其移动到 /usr/src
目录。
在该位置解压下载的包。(将'x'替换为你下载的版本号)
$ sudo tar xzf Python-x.x.x.tgz
编译并安装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)
我觉得这些版本是完全独立的。你只需要安装它们,就能使用像 /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
。