2011-05-06 45 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