システムのPythonを置き換えるのは良い考えではありません。1ポイントリリースで上に移動して
も、おそらくシステムが壊れることはありませんが、誰がリスクを冒したいですか?Pythonを使用してシステムにライブラリをインストールするとeasy_install
、それらが互いに競合する場合にも問題が発生する可能性があります。
別の方法は、ソースからPythonをビルドし、それをホームディレクトリにインストールし、virtualenvを使用して、特定のプロジェクトに必要なライブラリをインストールできる分離された環境を作成することですpip
(これはより新しいものですeasy_install
)。
Python 2.7の場合、標準ライブラリの「オプション」の部分が必要な場合は、他にもいくつか作成する必要があります。これがDebian「Squeeze」(執筆時点では安定している)で私のために働くスクリプト(インターウェブ全体に散らばっているブログ投稿から大部分が一緒に石畳になっている)です:
#!/bin/bash -e
# Setup
sudo aptitude install build-essential
mkdir -p ${HOME}/.local
mkdir build-python
cd build-python
# Get sources
### Tcl/Tk <http://www.tcl.tk/software/tcltk/download.html>
wget "http://downloads.sourceforge.net/project/tcl/Tcl/8.5.13/tcl8.5.13-src.tar.gz"
wget "http://downloads.sourceforge.net/project/tcl/Tcl/8.5.13/tk8.5.13-src.tar.gz"
### Berkeley DB <http://www.oracle.com/technetwork/products/berkeleydb/downloads/index-082944.html>
wget "http://download.oracle.com/berkeley-db/db-4.8.30.tar.gz"
### Python <http://www.python.org/download/>
wget "http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz"
# Build Tcl
tar xzf tcl8.5.13-src.tar.gz
cd tcl8.5.13/unix
./configure --prefix=${HOME}/.local
make
make install
cd ../..
# Build Tk
tar xzf tk8.5.13-src.tar.gz
cd tk8.5.13/unix
./configure --prefix=${HOME}/.local
make
make install
cd ../..
# Build Berkeley DB 4.8
tar xzf db-4.8.30.tar.gz
cd db-4.8.30/build_unix
../dist/configure --prefix=${HOME}/.local/opt/BerkeleyDB.4.8 --enable-tcl --with-tcl=${HOME}/.local/lib
make
make install
cd ../..
# Set compile flags
export LDFLAGS="-L${HOME}/.local/lib -L${HOME}/.local/opt/BerkeleyDB.4.8/lib"
export CPPFLAGS="-I${HOME}/.local/include -I${HOME}/.local/opt/BerkeleyDB.4.8/include"
export CXXFLAGS=${CPPFLAGS}
export CFLAGS=${CPPFLAGS}
export LD_LIBRARY_PATH=${HOME}/.local/lib:${HOME}/.local/opt/BerkeleyDB.4.8/lib
export LD_RUN_PATH=${LD_LIBRARY_PATH}
# Build Python 2.7
tar xzf Python-2.7.3.tgz
cd Python-2.7.3
./configure --prefix=${HOME}/.local
make
make altinstall
cd ..
# Install virtualenv, pip and virtualenvwrapper
curl http://python-distribute.org/distribute_setup.py | ${HOME}/.local/bin/python2.7
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | ${HOME}/.local/bin/python2.7
${HOME}/.local/bin/pip install virtualenvwrapper
# Update ~/.bashrc
echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ${HOME}/.bashrc
echo 'export WORKON_HOME="${HOME}/.local/virtualenv"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_PYTHON="${HOME}/.local/bin/python2.7"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_VIRTUALENV="${HOME}/.local/bin/virtualenv"' >> ${HOME}/.bashrc
echo 'export VIRTUALENVWRAPPER_VIRTUALENV_ARGS="--python=python2.7"' >> ${HOME}/.bashrc
echo 'source ${HOME}/.local/bin/virtualenvwrapper.sh' >> ${HOME}/.bashrc
# Finish ...
cd ..
echo -e "\n\n ... Done!"
このスクリプトは、必要に応じてGCCなどをインストールするためにパスワードを要求します。その後、すべてを構築するのにしばらく時間がかかります。私の(古代の)マシンと(ひどい)インターネット接続で約25分です。注意を払っている場合は、ある時点で次のメッセージがスクロールして表示されます。
Python build finished, but the necessary bits to build these modules were not found:
bsddb185 dl imageop
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
これらの4つのモジュールは古風であるか、非推奨であるため、心配する必要はありません。メッセージに他のモジュールが記載されている場合は、必要なライブラリがシステムにインストールされていないことを意味します。その場合でもPythonを実行できますが、それらのモジュールをインポートすることはできません。この影響を受けている場合は、コメントで叫んでください。それに応じてスクリプトを更新します。
.bashrc
それが正常に終了したら、あなたはあなたの:を調達する必要があります
$ source ~/.bashrc
...これで、新しくコンパイルしたPythonを実行できるようになります...
$ python2.7
Python 2.7.3 (default, Nov 17 2012, 02:00:26)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
...で動作するvirtualenvを作成します...
$ mkvirtualenv my_env
$ python
Python 2.7.3 (default, Nov 17 2012, 02:00:26)
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
...ライブラリをインストールします..。
$ pip install beautifulsoup4
... 等々。
virtualenvを終了するには:
$ deactivate
後日再入力するには:
$ workon my_env
詳細については、pipとvirtualenvwrapperのドキュメントを確認してください。