切换Python版本

16 投票
7 回答
29377 浏览
提问于 2025-04-15 12:48

故事: 我有一个应用程序是用 Python 2.4 开发的,另一个是用 2.6 开发的。我尝试把 Python 2.4 做成一个符号链接(也就是让它指向 Python),结果在 Ubuntu Jaunty 上出现了一堆问题。现在我正在下载 2.4 的所有依赖项,并用 python2.4 setup.py install 来安装它们。这些依赖项似乎是无穷无尽的。

问题1:我怎么告诉某个框架,比如 Django,使用 Python 2.6,而让另一个框架 Mjango 使用 2.4?就像我们用数据库名称那样的语法。

问题2:有没有更优雅的方法来切换版本?因为我用符号链接的办法真是个虚拟灾难。

问题3:我能不能下载一个适用于 Hardy 的 deb 包,然后让 Jaunty 认为它适用于自己?

7 个回答

4

我发现 http://github.com/utahta/pythonbrew 安装和使用起来比其他任何解决方案都简单多了。

只需安装它,你就会有以下这些选项:

pythonbrew install 2.7.2
pythonbrew use 2.7.2 # use 2.7.2 for a current terminal session
pythonbrew switch 2.7.2 # use 2.7.2 by default system wide
pythonbrew uninstall 2.7.2

注意:如果你使用的是预装了Python的Linux系统,切换到另一个版本可能会导致一些问题,所以要小心哦。

6

Pythonbrew 是一个很神奇的工具。它可以被称为 Python 版本管理器,类似于 RVM(Ruby 版本管理器),但 Pythonbrew 的灵感来源于 Perlbrew。

Pythonbrew 是一个程序,可以自动化在用户的 $HOME 目录下构建和安装 Python。

 Dependencies – curl

在安装 Pythonbrew 之前,先在你的机器上安装“curl”。要安装 curl,可以在终端输入下面的命令,并在提示时输入用户密码。

 $sudo apt-get install curl

安装好 curl 后,现在可以安装 Pythonbrew 了,复制并粘贴以下命令到终端,并在提示时输入用户密码。

推荐的安装方法 - 简单安装

 $ sudo easy_install pythonbrew 

要完成安装,输入以下命令

 $pythonbrew_install

另一种安装方法:

使用 curl 命令从 GitHub 下载最新版本的 pythonbrew。

curl -kLO http://github.com/utahta/pythonbrew/raw/master/pythonbrew-install

下载后,将“pythonbrew-install”改为“可执行文件”。

 chmod +x pythonbrew-install

然后,在终端运行 pythonbrew-install。

./pythonbrew-install

现在,Pythonbrew 已经安装在 “主目录”,也就是 /home/user/.pythonbrew

接下来,将以下行复制并粘贴到 ~/.bashrc 文件的末尾。

*注意:将 “user” 替换为你系统中的用户名。

source /home/user/.pythonbrew/etc/bashrc

就这样!关闭终端。

安装不同版本的 Python 的步骤:

打开一个新的终端,输入以下命令或复制粘贴它。

$pythonbrew install 2.6.6

这将安装 Python 2.6.6,如果要安装 Python 2.7 或 Python 3.2,只需在之前的命令中更改版本号。

$pythonbrew install 2.7

或者

$pythonbrew install 3.2

更新:如果在安装时遇到错误,请使用下面的命令进行安装。

$pythonbrew install --force 2.7

或者

$pythonbrew install --force 3.2

如何管理系统中安装的不同版本的 Python

例如,如果你的系统中安装了 Python 2.6.6Python 2.7Python 3.2,可以按照以下方式在版本之间切换:

默认情况下,Python 2.6.6 将是活动版本,若要切换到 Python 2.7,请使用以下命令。

$pythonbrew switch 2.7

默认 Python 已更改为 Python 2.7。

现在,要切换到 Python 3.2,只需在之前的命令中更改版本号。

$pythonbrew switch 3.2

使用以下命令检查或列出已安装的 Python 版本。

$pythonbrew list

使用以下命令检查或列出可安装的 Python 版本。

$pythonbrew list -k

要卸载任何已安装的 Python 版本(例如卸载 Python 2.7),请使用以下命令。

$pythonbrew uninstall 2.7

使用以下命令更新 Pythonbrew

$pythonbrew update

使用以下命令禁用 Pythonbrew 并激活默认版本。

$pythonbrew off

享受在单台 Linux / Ubuntu 机器上安装多个版本 Python 的体验吧!

31

使用 Virtualenv

这里有更多信息: 使用virtualenv

通过使用virtualenv,你可以为每个项目或应用创建一个新的虚拟Python环境,并且可以选择你想要的Python版本。然后在需要的时候激活相应的环境。

进一步解释我的回答:

你可以在电脑上安装多个版本的Python(我机器上有2.4、2.5、2.6和3.1 - 我是从源代码安装的)。我用的是Mac,系统自带的Python保持为OS X默认设置的版本。

我使用 easy_install 来安装软件包。在ubuntu上,你可以这样获取easy_install:

sudo apt-get install python-setuptools

要安装virtualenv,可以这样做:

easy_install virtualenv

我通常为每个正在进行的项目创建一个新的virtualenv,并且不让它访问全局的site-packages。这可以把所有的包紧密地放在一起,并让我拥有所需的特定版本。

virtualenv -p python2.6 --no-site-packages ~/env/NEW_DJANGO_PROJECT

然后每当我做与这个项目相关的事情时,我就激活它:

source ~/env/NEW_DJANGO_PROJECT/bin/activate

如果我现在运行python,它就会使用这个新的Python版本。如果我使用easy_install,它会把东西安装到我的新虚拟环境里。

所以,virtualenv应该能解决你所有的问题。

撰写回答