我有一台Debian机器用于Django生产服务器。我需要安装第二个Python(2.7.1)以与virtualenv一起使用。但它总是写入我没有某些模块,然后我不得不手动搜索、apt-install并重新构建。是否有一种解决构建依赖关系的方法,或者为Debian Squeeze预编译的带有Python 2.7.1的.deb文件?如果这是一个初学者问题,我很抱歉,我已经查过资料了。
获取Python 2.7.1源代码并手动编译:
configure --prefix=/path/to/python-2.7
make; make install
Python 2.7已经适用于 wheezy (测试版),您可以通过添加testing
仓库并进行APT钉选来安装它。
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
Pin-Priority值低于500基本上意味着不会自动安装来自testing的软件包,因此您不会遇到其他软件包的问题。
3)从testing中安装python2.7
:
aptitude -t testing install python2.7
(or apt-get
if you don't have aptitude
)
以下是针对Debian GNU/Linux 6.0.7(于2013年7月18日发布)的两个方法:
安装所需依赖项
aptitude -y install build-essential python-pip libmysqlclient-dev libadns1-dev \
python-dev libreadline-dev libgdbm-dev zlib1g-dev libsqlite3-dev \
libssl-dev libbz2-dev libncurses5-dev libdb-dev
下载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
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"
使用pyenv软件包。
pyenv install 2.7.5
使用debootstrap安装chroot环境也是一种快速且安全的解决方案。它大约使用300MB。
debootstrap wheezy /opt/debian7
chroot /opt/debian7
apt-get install python2.7
您可以使用pythonbrew安装和切换Python版本。我在Debian 6和Debian 7中安装了Python 2.7.3和Python 2.7.9,运行良好。
您可以参考此教程pythonbrew howto。
make altinstall
? - timss