替換系統Python不是一個好主意。向上移動一點發布 可能不會破壞你的系統,但誰願意冒這個險?將 庫安裝到您的系統上使用easy_install
的Python如果它們相互衝突也會導致問題 。
另一種方法是從源代碼構建Python,它安裝到你的家 目錄,並使用的virtualenv使用pip
創建可以在其中 安裝你需要一個給定的項目不管庫隔離環境(這是 越現代等同於easy_install
)。
對於Python 2.7,如果您需要標準 庫中的某些「可選」部分,那意味着也要構建其他一些東西。這裏有一個腳本 是 爲我工作Debian的「擠」(主要是從分散在interweb博客文章拼湊起來)(穩定,在寫作的時候):
#!/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.
這四個模塊是過時的和/或過時,所以你不必擔心 他們。如果該消息提及任何其他模塊,則意味着某些 必要的庫未安裝在您的系統上。如果是這種情況,你仍然可以運行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。
確保'pkg_resources'位於python路徑中。您可以通過在setup.py中打印sys.path來檢查。如果它不在路徑中,通過追加到'sys.path'來添加它。 – inspectorG4dget
難道你只是apt-get升級你的Python包到2.7? – synthesizerpatel
@synthesizerpatel我試圖apt-get升級,但我仍然得到相同的錯誤 – hyleaus