Ubuntu 12.04에서 Python 2.7.5로 업그레이드


9

우분투 12.04는 python v 2.7.3기본적으로 제공됩니다 . 로 업그레이드하고 싶습니다 v 2.7.5. 나는 이 질문에 주어진 지시를 시도 했다 .

sudo apt-get install build-essential
sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz

tar -xvf Python-2.7.5.tgz
cd Python-2.7.5

./configure
make
sudo make altinstall

마지막 명령은 오류와 함께 실패합니다.

...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1

이 업그레이드는 어떻게합니까?


3
2.7.5로 업그레이드해야합니까? 모든 버그 수정은 우분투에서 2.7.3으로 백 포트됩니다. 소스에서 컴파일 할 때 모든 두통을 정말로 줄이고 싶습니다. 2.7.5 설치의 구체적인 이유를 제공하십시오. 이 사이트에서 깨진 Python 설치에 대한 질문은 일상적인 비즈니스이며 소스에서 설치하여 발생하는 것이 일반적입니다. 예를 들어 askubuntu.com/q/323248/88802
gertvdijk

1
패키지를 잘못 사용했지만 질문이 여전히 남아 있으며 설명이없는 downvote를 이해하지 못합니다.
Gabriel

sudo make **install**대신 달리면 어떻게됩니까 sudo make **altinstall**? 같은 오류가 발생합니까?
Kevin Bowen

이제 시스템을 망칠 수 있다는 소식을 여러 번 들었으므로 실제로 솔루션을 시도하는 것이 두렵 습니다. 답변이 정말 완전 해 보이므로 답변을 수락 된 것으로 표시하겠습니다. 감사합니다.
Gabriel

2
@Gabriel maggotbrain의 솔루션은 아주 좋은 것입니다. pyenv에 원하는 버전을 설치할 수 있습니다. 시스템의 파이썬에는 아무런 해가 없습니다. 나는 앞으로의 질문에 대해 이것을 기억할 것입니다. :)
gertvdijk

답변:


13

물론 소스에서 설치하는 것도 가능하지만 몇 가지 이유로 우분투 시스템의 파이썬 패키지를 소스에서 업그레이드하는 것이 주저 할 것입니다.

  1. 그렇게하면 소스에서 직접 컴파일을 수행하여 시스템을 손상시킬 수 있습니다 (우분투가 Python 패키지 빌드를 사용자 정의하는 방법을 정확히 모르겠습니다).

  2. 앞으로 리포지토리의 모듈을 사용하는 데 문제 가있을 있습니다.

활성화 된 PPA 가 있지만 (2.7.x 열차는 올해 4 월에 마지막으로 지어졌습니다) PPA는 아직 2.7.5 빌드가 없습니다. 관리자에게 핑 (ping)을 수행하고 향후 빌드에 대한 계획과 2.7.5에 대한 계획을 포함할지 여부를 확인할 수 있습니다. 가능하면 소스에서 설치하는 것이 좋습니다. 다른 소프트웨어와 마찬가지로 먼저 테스트 시스템에이를 구축하는 것이 좋습니다.

또 다른 옵션은 샌드 박스 ( pyenv) 를 사용하여 테스트되지 않은 새로운 소프트웨어 패키지를 실행하는 것입니다. 시스템에 직접 설치하면 기계 작동에 부정적인 영향을 줄 수 있습니다.

pyenv 패키지 를 사용하면 컴퓨터에 설치된 기본 Python 패키지에 영향을 미치지 않고 비 시스템 Python 버전을 상자에 설치할 수 있습니다 (다시 : 시스템은 현재 설치된 Python 버전에 따라 업그레이드되어 시스템을 손상시킬 수 있음). 이전에는 Pythonbrew 가 시스템에서 python 패키지를 분리하는 데 권장되었지만 이후 패키지에서 더 이상 사용되지 않고 대체되었습니다 pyenv.

pyenv패키지는 다음과 같은 기능을 제공합니다 :

  • 사용자별로 글로벌 Python 버전을 변경할 수 있습니다.
  • 프로젝트 별 Python 버전을 지원합니다.
  • 환경 변수를 사용하여 Python 버전을 대체 할 수 있습니다.
  • 한 번에 여러 버전의 Python에서 명령을 검색하십시오.

설치

  1. ~ / .pyenv에 pyenv를 확인하십시오.

    git clone git://github.com/yyuu/pyenv.git .pyenv
  2. pyenv 명령 줄 유틸리티에 액세스하려면 ~ / .pyenv / bin을 $ PATH에 추가하십시오.

    echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile

    Zsh 참고 : ~/.zshenv대신 파일을 수정하십시오 ~/.bash_profile.

  3. 심에 자동 완성 기능을 사용하려면 쉘에 pyenv init를 추가하십시오.

    echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

    Zsh 참고 : ~/.zshenv대신 파일을 수정하십시오 ~/.bash_profile.

  4. 경로 변경 사항을 적용하려면 셸을 다시 시작하십시오. 이제 pyenv를 사용할 수 있습니다.

    exec $SHELL
  5. ~ / .pyenv / versions에 Python 버전을 설치하십시오. 예를 들어 Python 2.7.5를 설치하려면 소스를 다운로드하여 압축을 푼 다음 다음을 실행하십시오.

    pyenv install 2.7.5

    참고 소스에서 빌드하기 위해 구성 옵션을 전달해야하는 경우 CONFIGURE_OPTS 환경 변수를 사용하십시오.

  6. 심 바이너리를 다시 빌드하십시오. 새 Python 바이너리를 설치할 때마다 (예 : 새 Python 버전을 설치하거나 바이너리를 제공하는 패키지를 설치할 때)이 작업을 수행해야합니다.

    pyenv rehash

1
pyenv여러 가지 이유로 훌륭합니다. 초기 설정 후 최소한의 번거 로움으로 엄청난 실험을 도와줍니다.
Fahad Yousuf 1

특정 사용자의 home폴더 에서 실행 됩니까? 모든 사용자에게 어떻게 설치할 수 있습니까? 내가 설치할 수 ./pyenv있는 /usr/local/bin또는 나쁜 생각이다?
생물 학적 위험
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.