2012-11-17 3 views
4

debian을 2.6의 기본 파이썬 설치와 함께 사용합니다. easy_install 설치를 포함하여 Python 2.7로 마이그레이션하려고했습니다. 내가 내/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을 내 설치가 내가 실행 해요 파이썬의 버전과 관련이 느낌이 있지만, 나는 그것을 이해할 수 없다.

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 

수 : 또한, CD-보내고 나는, 나는 easy_install을 사용할 수 있음을 실행 한 후 다음과 같은 오류와 함께, 디렉토리에, 그리고

python setup.py build; setup.py install 

실행이 .tar.gz의 파일을 다운로드 시도 누구든지 내게 해결책을 제안합니까? 도와 주셔서 감사합니다.

+0

'pkg_resources'가 파이썬 경로에 있는지 확인하십시오. 'setup.py'에'sys.path'를 출력하면 이것을 확인할 수 있습니다. 그것이 경로에 없다면,'sys.path'에 추가하여 추가하십시오. – inspectorG4dget

+0

파이썬 패키지를 2.7으로 업그레이드 할 수 있습니까? – synthesizerpatel

+0

@synthesizerpatel apt-get 업그레이드를 시도했지만 여전히 동일한 오류가 발생합니다. – hyleaus

답변

5

시스템 교체 파이썬은 좋은 생각이 아닙니다. 한 포인트 씩 올라간다. 아마 시스템을 깨뜨리지는 않지만 누가 위험을 감수하려합니까? 라이브러리를 시스템에 설치 easy_install을 사용하는 Python은 서로 충돌하는 경우 의 문제가 발생할 수 있습니다.

대안은 소스에서 파이썬을 구축 홈 디렉토리에 설치하고 더 인 (pip를 사용하면 주어진 프로젝트에 필요한 어떤 라이브러리를 설치할 수있는에 고립 된 환경을 만들기 위해 VIRTUALENV 사용하는 것입니다 현대 easy_install 해당).

Python 2.7의 경우 표준 라이브러리의 '선택 사항'부분 중 일부를 원한다면 다른 몇 가지 사항도 빌드해야합니다.

#!/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!" 

이 스크립트는 암호를 요청합니다 : 여기에 (글을 쓰는 시점에서, 안정) 데비안 "짜기"에 나를 위해 그 작품 (주로 interweb에 걸쳐 흩어져 블로그 게시물에서 함께 자갈길) 스크립트 입니다 GCC 등을 설치하려면 필요한 시간을 갖기 위해 내 (고대) 기기와 (끔찍한) 인터넷 연결에 대해 모든 것을 구축하는 데 시간이 걸립니다.

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 

... 당신은 다음 새로 컴파일 된 파이썬을 실행 할 수 있습니다 ...

$ 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 

... 등등. 자세한 내용은

$ workon my_env 

pipvirtualenvwrapper에 대한 문서를 체크 아웃 :

$ deactivate 

나중에 그것을 다시 입력 :

는 VIRTUALENV를 종료합니다.

+0

이것은 매우 잘 작동했습니다. 당신의 도움을 주셔서 감사합니다. – hyleaus