2012-11-17 37 views
4

我正在使用debian,安裝的默認python爲2.6 我想遷移到python 2.7,包括安裝easy_install。 我跟着別人的指令刪除我的/ usr/bin中/蟒蛇,然後鏈接將默認python安裝從2.6遷移到2.7:easy_install出現問題

ln -s /usr/bin/python2.7 /usr/bin/python 

我下載了最新的setuptools

版本和cd'ed到文件中。在安裝的幫助讓我來運行它作爲一個外殼程序,我做到了,並出現以下錯誤:

sh setuptools-0.6c11-py2.7.egg 
Traceback (most recent call last): 
    File "<string>", line 1 in <module> 
ImportError: No Module named setuptools.command.easy_install 

我有我的easy_install的安裝涉及到我運行的Python版本的感覺,但我無法弄清楚。我也試着下載.tar.gz文件,CD-ING進入目錄,並運行

python setup.py build; setup.py install 

後,我跑,我可以使用的easy_install,並出現以下錯誤:

Traceback (most recent call last): 
    File "/usr/local/bin/easy_install", line 5, in <module> 
    from pkg_resources import load_entry_point 
ImportError: No Module named pkg_resources 

燦有人向我建議一個解決方案?謝謝您的幫助。

+0

確保'pkg_resources'位於python路徑中。您可以通過在setup.py中打印sys.path來檢查。如果它不在路徑中,通過追加到'sys.path'來添加它。 – inspectorG4dget

+0

難道你只是apt-get升級你的Python包到2.7? – synthesizerpatel

+0

@synthesizerpatel我試圖apt-get升級,但我仍然得到相同的錯誤 – hyleaus

回答

5

替換系統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 

欲瞭解更多,請查看文檔pipvirtualenvwrapper

+0

這工作得很好。謝謝你的幫助。 – hyleaus

相關問題