由于这将是最后一个主要的Python 2.x版本,并且打算长期保留,我决定使用它。我从源代码编译了它(当然,在构建依赖项之后),但偶尔会遇到一些小问题。
如果我将编译的Python 2.7定义为默认版本,是否安全?因为有一些分发应用程序是基于Python工作的。
我遇到了一个无法升级到Maverick的VPS的相同问题(即使新的LTS镜像也不总是及时提供)。Marius' answer帮助我开始解决问题,但还需要进一步扩展:
如果您和我处于同样的情况,那么简单运行add-apt-repository
的建议对您来说是行不通的。所以让我们用老方法来做:
/etc/apt/sources.list
(需要 root 权限;如果在 shell 上,可能需要运行 sudo vim /etc/apt/sources.list
)。vim
,按下 i
进入插入模式),添加以下行:deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main
vim
中:输入 :wq
),返回到 shell。sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
sudo apt-get update
在您的服务器上打开一个shell,并输入以下命令:
sudo apt-get install python2.7 python2.7-dev
为了让easy_install
正常工作,请获取distribute
引导脚本:
curl -O http://python-distribute.org/distribute_setup.py
python2.7 distribute_setup.py
最后,如果您计划进行任何重要的操作,您需要让pip
和virtualenv
正常工作:
easy_install-2.7 pip
pip-2.7 install virtualenv
创建新环境的文件夹并打开:
mkdir my_env && cd my_env
创建虚拟环境本身(点表示当前目录是环境的位置,如果你跳过了上一步,请用正确的路径替换它):
virtualenv --no-site-packages --python=python2.7 .
激活环境。你会注意到命令提示符会改变以反映出激活的环境:
source bin/activate
现在在这个shell中所做的任何操作都将使用虚拟环境的bin文件夹中的脚本和该环境的Python包。请记住,选项--no-site-packages意味着您从最小的包集开始(包括pip),因此您需要安装所有需要的包。
完成后,停用环境(这是一个被激活环境识别的命令):
deactivate
-E
传递给pip
来将软件包安装到虚拟环境中(例如:pip install some-package -E /path/to/virtual/environment
,将some-package
安装到给定路径上的虚拟环境中)。请记住,您将有几个不同版本的pip
对应于安装的不同Python版本。pip-2.7
是一个好主意(我们传递给virtualenv
的--python=python2.7
选项意味着虚拟环境将使用它提供的Python 2.7版本的工具,所以您不必担心这个问题)。$ apt-get install libapache2-mod-wsgi
$ ldd /usr/lib/apache2/modules/mod_wsgi.so
libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)
所以我遵循了Gork-Zope提供的指示 在这里。
我终于有一个正常工作的服务器。谢谢。
我不这么认为,因为这将需要改变许多与10.04版本相关的程序和库。实际上,Ubuntu中的许多工作都是使用特定的Python版本完成的。将其更改为Python会改变许多系统文件。
对于10.10版本,只需通过synaptic/aptitude安装python2.7(还可以安装3和3.1)即可获得。但是对于10.04版本,没有为其提供相应的工作。
10.10版本默认使用Python 2.6。对于答案是否不乐观表示抱歉,只是想给您一个变化的概念。
编辑 - 根据下面的评论再次检查,将Python 2.7更改为Python 2.6作为默认版本。谢谢。
easy_install-2.7 -U pip
来强制安装2.7版本。但还是谢谢你,这真的帮了我很多! - Gabe Moothartwget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7
。然后,为了获取pip,执行sudo python2.7 -m easy_install pip
,接着执行sudo python2.7 -m easy_install --upgrade pip
。--no-check-certificate选项是为了解决wget对SSL证书的投诉。(请参考https://pypi.python.org/pypi/setuptools#unix-wget) - zlovelady