2011-05-06 142 views
15

所以我有我的Django生产服务器的Debian机器。 我需要安装第二个python(2.7.1)以与virtualenv一起使用。 但它总是写我没有一些模块,然后我必须手动搜索,apt-install他们并重建。有没有一种方法来解决构建的依赖关系,或者使用Python 2.7.1 for Debian Squeeze预编译.deb? 对不起,如果这是一个noobie问题,我诚实地Google搜索。在Debian上安装第二个python

回答

21

获取了Python 2.7.1源和手动编译:

configure --prefix=/path/to/python-2.7 
make; make install 
+0

我也建议在编译之前安装各种库:http://stackoverflow.com/a/4047583/211197 这将是有益的,如果有必要,以后再安装setuptools的/ PIP。 – maksimov 2012-09-24 10:54:14

+4

为什么不'make altinstall'? – timss 2013-02-08 14:06:53

12

Python 2.7 is available for wheezy (testing),所以你应该能够通过添加testing仓库,做一些APT pinning安装它。

1)/etc/apt/sources.list中添加该存储库

deb http://ftp.us.debian.org/debian testing main contrib non-free 

2)做实际的钉扎在的/ etc/apt/preferences中

Package: * 
Pin: release n=testing 
Pin-Priority: 100 

低于500的Pin-Priority基本上意味着没有自动安装来自testing的包,所以您不会遇到其他包的问题。

3)testing安装python2.7

aptitude -t testing install python2.7 

(或apt-get如果你没有做​​)

+12

这不应该由于多种原因。来自不同Debian版本的软件包不应混用。测试/不稳定分支正在将Wheezy版本的默认Python版本更改为2.7。 Squeeze是使用2.6的理由,所以如果你用2.7替换它,你可能会冒险破坏使用python的系统上的所有东西。 – Arrowmaster 2011-05-06 09:12:01

+0

@Arrowmaster:我宁愿说这是不支持的,而不应该这样做。 *如果发生故障,您可以保留这两个部分。* – dancek 2011-05-06 10:45:56

+2

没问题,但告诉那些不知道从哪里开始解决问题的人们会更容易,因为不应该这样做。 – Arrowmaster 2011-05-06 19:22:59

2

安装的chroot环境的debootstrap可能也是一个快捷,安全的解。 它采用了约300MB

debootstrap wheezy /opt/debian7 
chroot /opt/debian7 
apt-get install python2.7 
9

这里是Debian GNU/Linux的6.0两种方法。图7(上18/07/2013):

经典

安装依附

​​

下载python

cd /tmp 
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tar.xz 
unxz -c Python*xz | tar xpf - 

编译

cd Python* 
./configure --prefix=/opt/python2.7.5 --enable-shared 
make 

安装

make install 
echo "/opt/python2.7.5/lib" > /etc/ld.so.conf.d/libpython2.7.conf 
ldconfig 

测试

/opt/python2.7.5/bin/python -c "print('Ok')" 

升级PIP VIRTUALENV

easy_install pip 
pip -v install --upgrade distribute==0.7.3 
pip -v install --upgrade virtualenv==1.9.1 

创建一个用户和它的virtualenv

adduser user_app --home /opt/user_app 
su user_app 
virtualenv --no-site-packages --verbose -p /opt/python2.7.5/bin/python $HOME 

测试再次

su user_app 
cd 
source bin/activate 
python -c "import sys; print sys.version" 

的 “Python化”

使用包pyenv

pyenv install 2.7.5 
+0

我想我会跳过添加自定义的Python安装到ld.so.conf中缓存。 我的方法是创建一个“包装脚本”(/usr/local/bin/python2.7),这将:出口LD_LIBRARY_PATH =选择/ python2.xx/lib目录,然后调用/opt/python-2.xx/斌/ Python的“$ @”等,这至少使一切隔离。 – 2014-02-05 10:21:49