Ubuntu에 최신 Python 2.7.X 또는 3.X를 어떻게 설치합니까?


183

http://python.org/download/ 에서 다운로드 한 최신 Python tarball을 Ubuntu에 설치하고 싶습니다 .

이것이 올바른 설치 방법입니까?

./configure
make
make install

그렇지 않다면 어떻게해야합니까?


1
한 번 에 우분투에 최신 버전의 파이썬 을 설치하기 위해 이것이 요청되었다고 생각합니다 . 이제 우분투에 이전 버전의 파이썬 을 설치해야합니다 ( 많은 것들에 대해서는 여전히 파이썬 2.7이 필요 하기 때문에 ) ... tl; dr :이 답변은 더 이상 최신 / 정확하지 않습니다. 대신, python3이 기본적으로 설치되어 있다고 가정하면 (그리고 아마도 최소 python2.x) 다음을 실행하십시오.sudo apt-get install python-2.7 python-pip
michael

@michael_n 무슨 소리 야? 소스에서 컴파일해도이 답변이 부정확하거나 오래되지는 않습니다. 단지 다른 방법입니다. 필요한 경우 apt를 사용하여 프로세스를 자동화 할 수 있습니다.

필요한 것을 사용하십시오. 나는 이것이 이것이 구식이라는 당신의 주장을 어떻게 뒷받침하는지 알지 못합니다. 당신이 직접 말했듯이, 사용하지 못할 수 있기 때문에 필요할 때 사용할 수 있습니다. 예를 들어, Linux의 Windows 하위 시스템은 일부 최신 소프트웨어 패키지를 사용하며 배포판은 우분투 16.04.1 (베타)이고 python2.6.2를 사용하고 python3은 현재 python2.7.12입니다. 나는 최신 패키지하려면 어떤것의 경우, 나는 compil한다

1
@jargonjunkie 당신은 주제가 맞지 않지만 맞습니다. 질문이 "우분투 16.04+에 파이썬 2.7을 어떻게 설치합니까?" (16.04가 현재 사용 가능하므로 내 요점이므로)라면 간단하게 sudo apt-get install python2.7. apt-get과 그 의존성을 통해 파이썬 모듈 설치를 처리 할 수있는 유일한 방법이기 때문에 이것은 더 쉬울뿐만 아니라 유일한 정답입니다.
마이클

이것이 설명하는 데 도움이되기를 바랍니다 (추가 답변). 파이썬 생태계는 매우 특별하고 까다 롭고 파이썬 환경을 신중하게 구성하지 않으면 쉽게 "종속성 지옥"에 들어갈 수 있습니다. askubuntu.com/a/831075/17060
michael

답변:


199

먼저 일부 종속성을 설치하십시오.

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

그런 다음 다음 명령을 사용하여 다운로드하십시오.

version=2.7.13
cd ~/Downloads/
wget https://www.python.org/ftp/python/$version/Python-$version.tgz

압축을 풀고 디렉토리로 이동하십시오.

tar -xvf Python-$version.tgz
cd Python-$version

이제 방금 시도한 명령을 사용하여 checkinstall설치하고 필요한 경우 제거하기 쉽도록 대신 사용하십시오.

./configure
make
sudo checkinstall

version필요한 버전으로 변경하십시오 ( 예 : version=2.7.1또는 version=3.6.0).


20
기본 파이썬 버전으로 설정 sudo make install하지 않고 사용altinstall
Shagun Sodhani

CXX=g++ ./configure./configure가 g ++를 찾을 수 없다는 경고를 표시 하는 경우 사용
srj

2
위에서 지시 한대로 설치 한 후 실제로 설치되었는지 확인하기 위해 콘솔에서 어떤 명령을 실행해야합니까?
J86

9
"Python을 설치하는 방법"이라는 간단한 질문에 대한 가장 좋은 대답은 다음과 같은 끔찍한 경고를 전달한다는 것은 매우 특별합니다. 공식적인 파이썬 웹 사이트에 다운로드 페이지가 많고 설치 지침서가 한 페이지가 아니라는 것이 놀랍습니다.
patb

4
pat- "python을 설치하는 방법"이라는 간단한 질문에 대한 가장 좋은 대답 sudo apt-get install python은 " 최신 Python 을 설치하는 방법", 더 복잡한 대답은 " 소스에서"의미입니다. 타사에서 사전 컴파일 된 바이너리를 설치하지 않는 한 모든 OS에서 동일한 문제가 발생할 수 있습니다.이 바이너리는 모든 OS에서 위험하며 (OS마다 크게 다름). 또한이 답변은 2012 년입니다. 보다 최근의 조언에 대해서는 askubuntu.com/questions/101591/…를
michael

181

직접 컴파일하려는 열망이 없다면 기본적으로 포함되지 않은 Python 버전을 DeadSnakes PPA 를 사용하여 설치 하는 것이 좋습니다 .

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python2.7

python2.4또는 등의 다른 버전 python3.6도 사용할 수 있습니다.


13
프로그램 노트 : 10.04 인 경우 add-apt-repository를 사용하기 전에 python-software-properties를 설치해야합니다.
Craig Maloney

3
대신 사전 빌드 바이너리에서 그것을 설치하는 해당 지역의 환경에서 파이썬을 구축하는 것이 좋습니다
pylover

16
+1 :)really have a burning desire to compile it yourself
와트

5
1. ppa공식적으로 승인되지 않았으므로 가장 안전한 방법은 소스에서 빌드하는 것입니다. 2. 이로 인해 전역 파이썬이 sudo생겨서 로컬이 아닌 패키지를 수정하거나 설치할 수 없습니다. 3. 소스에서 빌드하여 여러 위치에 여러 파이썬을 로컬로 설치할 수 있습니다.
Ioannis Filippidis

2
apt-get install python2.7이것은 파이썬 대신 바이너리 python2.7을 설치합니다 ... 못생긴 !!
Dhawal

26

최신 Ubuntu 릴리스 1 : Ubuntu 16.04.1 서버의 경우이 내용을 계속 문서화 하면 기본 Python은 버전 3.5이고 Python 2.7은 기본적으로 설치 되지 않습니다 . 새로 설치시 ( python실행 파일 조차 없음 ) :

$ type python3 python2 python 
python3 is /usr/bin/python3
-bash: type: python2: not found
-bash: type: python: not found

$ python3 --version 
Python 3.5.2

$ python --version 
The program 'python' can be found in the following packages:
 * python-minimal
 * python3
Try: sudo apt install <selected package>

참고 : 계속하기 전에, 당신은 아마 빠른을하고 싶은 것 sudo apt-get update, sudo apt-get upgrade하고 sudo apt-get dist-upgrade(이 명령은 일을 사실에 정확하게 메모를 해주세요, 나는 신선한 여기에 설치 있으리라 믿고있어.)

python 2.7 설치는 다음과 같이 쉽습니다.

$ sudo apt-get install python2.7

python 2.7 설치의 초기 결과는 다음과 같습니다.

$ sudo apt-get install python2.7
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7-minimal
Suggested packages:
  python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
  libpython2.7-minimal libpython2.7-stdlib python2.7 python2.7-minimal
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,735 kB of archives.
After this operation, 15.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc, etc...

python 2.7을 설치 한 후

$ type python3 python2.7 python3.5 python2 python
python3 is /usr/bin/python3
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5
bash: type: python2: not found
bash: type: python: not found

그러나 아직 통해 PyPI 모듈을 설치할 수 없기 때문에, 여전히 문제있다 pip- 예를 들어, 당신이 jupyter 노트북을 원하거나 최신 scipy 또는 NumPy와가 (등), 설치할 수 있습니다 경우 pip다음과 pip install사람들을, 여전히 돌고 graphviz 또는 코어 시스템 라이브러리와 같은 apt-get필요한 시스템 종속성 을 설치합니다 .

$ type pip3 pip2 pip
bash: type: pip3: not found
bash: type: pip2: not found
bash: type: pip: not found

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

따라서 pip를 설치하려면 다음과 같이 쉽습니다 sudo apt-get install python-pip.

$ sudo apt-cache search -n pip | egrep '^python[0-9]*-pip'
python-pip - alternative Python package installer
python-pip-whl - alternative Python package installer
python3-pip - alternative Python package installer - Python 3 version of the package

python-pipPython 2.7 pippython3-pipPython 3 모두 에 필요합니다 pip. 를 통해 설치가 apt-get필요한 의존성을 설치해야합니다입니다 예를 들어, 다음은 pip2 설치를위한 출력입니다.

$ sudo apt-get install python-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip-whl
  python-pkg-resources python-setuptools python-wheel python2.7-dev
Suggested packages:
  binutils-doc debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib
  autoconf automake libtool flex bison gdb gcc-doc gcc-5-multilib gcc-5-locales libgcc1-dbg
  libgomp1-dbg libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg libubsan0-dbg
  libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc libstdc++-5-doc make-doc python-doc
  python-tk python-setuptools-doc
The following NEW packages will be installed:
  binutils build-essential dpkg-dev fakeroot g++ g++-5 gcc gcc-5 libalgorithm-diff-perl
  libalgorithm-diff-xs-perl libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev
  libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl libgcc-5-dev
  libgomp1 libitm1 liblsan0 libmpx0 libpython-all-dev libpython-dev libpython-stdlib libpython2.7
  libpython2.7-dev libquadmath0 libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make
  manpages-dev python python-all python-all-dev python-dev python-minimal python-pip
  python-pip-whl python-pkg-resources python-setuptools python-wheel python2.7-dev
0 upgraded, 49 newly installed, 0 to remove and 0 not upgraded.
Need to get 61.1 MB of archives.
After this operation, 169 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
...etc...

이 결과로 흥미로운 일이 발생합니다. 이제 "표준"(및 PEP 권장) python2python3(파이썬 2.7 및 파이썬 3.5에 대한 심볼릭 링크)가 있습니다.

$ type python3 python2 python python2.7 python3.5 
python3 is /usr/bin/python3
python2 is /usr/bin/python2
python is /usr/bin/python
python2.7 is /usr/bin/python2.7
python3.5 is /usr/bin/python3.5

당신은 또한 원할 것입니다 sudo apt-get install python3-pip; 설치하기 전에 다음이 있습니다.

$ type pip pip2 pip3
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
-bash: type: pip3: not found

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
/usr/bin/python3: No module named pip

설치 한 후 pip3,

$ sudo apt-get install python3-pip
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-setuptools python3-wheel python3.5-dev
Suggested packages:
  python-setuptools-doc
The following NEW packages will be installed:
  libpython3-dev libpython3.5-dev python3-dev python3-pip python3-setuptools python3-wheel python3.5-dev
0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded.
Need to get 38.0 MB of archives.
After this operation, 55.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
...etc...

결과 버전 :

$ type python python2 python3 pip pip2 pip3
python is /usr/bin/python
python2 is hashed (/usr/bin/python2)
python3 is hashed (/usr/bin/python3)
pip is /usr/bin/pip
pip2 is /usr/bin/pip2
pip3 is /usr/bin/pip3

$ pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

$ python2 -m pip --version 
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ python3 -m pip --version 
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

그리고 마지막으로 가장 좋아하는 파이썬 PyPI 모듈 설치를 시작하기 전에 마지막으로 pip 자체를 업그레이드해야 할 것입니다 (pip2 및 pip3 모두 별도로, 또한 실행 파일을 pip통해 호출 되는지 여부 는 중요하지 않습니다) 실행 파일, 실제 업그레이드는)에 저장됩니다 .pythonpip/usr/lib

$ sudo -H python2 -m pip install --upgrade pip
...
$ sudo -H python3 -m pip install --upgrade pip
...

이제 독립형 pip또는 python(를 통해 python -m pip {command}) 번들로 제공되는 버전을 실행할 수 있습니다 .


[1] 역사적 요약 : 구 우분투에는 Python 2.6 만 있었으므로 Python 2.7+를 설치하는 모든 다양한 방법이있었습니다. 나중에 파이썬 2.7을 공개 리포지토리에 추가 한 후에도 여전히 최신 수정 사항 (최소)이 필요한 최신 Python 2.7을 설치하는 것과 같은 과제가있었습니다. 오늘날 상황은 훨씬 더 좋고 간단합니다. 현재 공개 리포지토리에있는 현재 Python 2.7 & 3.5 (기본적으로 사람들이 관심을 갖는 두 가지 Python 플랫폼 버전)는 매우 안정적이므로 최신 버전 설치에 대해서만 걱정할 필요가 있습니다. 최신 파이썬이 아닌 파이썬 모듈 . 이제 파이썬 "최신 버전 문제"가 OS repos & PyPI & 로 부분적으로 이동 했습니다 .)aptpip


2
Ubuntu 16.04.1 에서이 지침에 따라 LTS는 다음과 같이 python 2.7 및 pip를 성공적으로 설정했습니다. sudo apt-get install python2.7; sudo apt-get install python-pip; sudo -H python2 -m pip install-업그레이드 핍; # 버전 확인 : $ pip --version-> pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7); $ python --version-> Python 2.7.12
Robert Lujo

내 무지를 용서하지만 파이썬 버전을 보여줄 때 "해시"가 무엇을 의미하는지 알 수 있습니까?
실패한 과학자

1
@TalhaIrfan 좋은 질문입니다 (간단한 대답을 허용하는 경우). 명령이 bash로 입력되면 (대부분의 셸로) cmd는에있는 별칭, 함수 또는 실행 파일 일 수 있습니다 $PATH. env var PATH는 문자 그대로 수천 개의 파일이있는 긴 디렉토리 목록입니다. 실행 파일을 빠르게 찾기 위해 셸은 캐시 된 해시 테이블을 사용하여 빠른 조회를합니다. 부실해질 수 있으므로 "해시"를 통해이 명령이 해당 실행 파일 unix.stackexchange.com/questions/5609/…에
michael

@ 마이클 감사합니다! 정말 유용한 답변입니다. 간단히 말해서!
실패한 과학자

1
@gaia 당신은 별도의 질문을하고 싶을 수도 있습니다. 왜냐하면 그것을 알아 내기 위해 더 많은 것을 요구해야 할 수도 있기 때문입니다 (또는 내가 이것을 쓴 후에 변경된 것이 있다면). 아마도 먼저 확인하는 모두 pip (2.7) pip3(3.x를) 완전히 업그레이드 / 설치, 단지 이전되지 않은 - 즉, sudo apt-get install python-pip python3-pipsudo -H python2 -m pip install --upgrade pipsudo -H python3 -m pip install --upgrade pip ... 아니면 정말 권한 문제가있는 경우 (이 작동 "로 표시 sudo ")로 이동하면 추적하기가 조금 더 어려워집니다.
마이클

11

12.04

당신은 다음과 같은 경우 Achu의 답변을 다음 용어 libread5-dev에 변경해야합니다 libreadline-gplv2-dev. 따라서 전체 명령은 다음과 같습니다.

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

4

pyenv 를 통해 다운로드하여 설치할 수도 있습니다

#Install Pyenv
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
export PATH=~/.pyenv/bin:/usr/local/hadoop/bin/:$PATH
echo 'export PYENV_ROOT="~/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

#Install Python
pyenv install 2.7.8
pyenv global 2.7.8

pyenv install 3.4.5
pyenv global 3.4.5

이전 버전의 Ubuntu에서 최신 버전의 Python을 얻는 가장 깨끗한 방법입니다. pyenv-virtualenv플러그인을 통한 virtualenv 지원도 포함되어 있어 충돌없이 다양한 모듈 요구 사항으로 응용 프로그램을 쉽게 설치할 수 있습니다.
RichVel

2
pyenv에 대한 두 가지 경고 : (1) bash 쉘 (또는 zsh이지만 우분투의 경우 / bin / sh 인 대시는 아닙니다)에서만 작동하며 (2) 로그인 쉘 (예 :)이 필요 bash --login하지 않습니다. Ansible에서 항상 쉽게 달성 할 수 있습니다. 대화식 사용에 적합하며 스크립팅 서버에 적합하지 않습니다.
RichVel

0

대부분 소개를 조정 하여이 답변 의 거울

pyenv 권장 합니다 . 헤더 종속성을 설치하는 것 외에도 빌드 프로세스를 자동화합니다 (아래 참조). 간단히 말하기 만하면 새 (또는 이전) 버전의 Python을 빌드하고 설치할 수 있습니다 pyenv install 3.6.0. 모든 것이 사용자로 실행되므로 Ubuntu 자체에서 사용 하는 Python을 망치 는 것에 대해 걱정할 필요가 없습니다 .

apt-repo 기반 옵션 (예 : deadsnakes)과 달리, pyenv update다른 사람이 패키지를 포장 할 때까지 기다릴 필요가 없기 때문에 일반적으로 릴리스 후 같은 날에 작동 합니다. 설치할 수있는 모든 버전보기pyenv install --list

pyenv 설치

  1. CPython을 빌드하는 데 필요한 도구 및 헤더를 설치하십시오 (PyPy 또는 Jython과 같은 이국적인 Python에는 다른 종속성이있을 수 있음). Git은 pyenv에서 사용되며 소스 브랜치의 빌드 / 설치도 가능하므로 3.8이 무엇이든 즉, GitHub에서 새로 나온 CPython의 마스터 브랜치를 설치할 수 있습니다.

    sudo apt-get install -y git
    sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
                            libffi-dev libsqlite3-dev tk-dev
    
    # optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
    sudo apt-get install -y libpng-dev libfreetype6-dev    
  2. 설치 관리자 스크립트를 실행합니다 (원래 작성자가 pyenv 및 매우 유용한 pyenv 플러그인을 설치합니다. 자세한 내용은 여기 참조).

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  3. ~/.profile또는에 init 줄을 추가하십시오 ~/.bashrc(설치 스크립트 끝에 언급하십시오).

    export PATH="~/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
  4. 쉘을 다시 시작하거나 (닫기 또는 열기 또는 exec $SHELL) 프로파일 스크립트를 다시로드하십시오. (예를 들어 source ~/.bashrc)

끝난!

환경 설정

시스템 파이썬 (일반적으로 나쁜 생각; OS 수준의 서비스는 특정 라이브러리 버전 등에 의존하고 있음)을 만지지 않으면 자신의 환경을 쉽게 만들 수 있습니다! 더 나은, 아니 sudo, 그것 또는 pip설치!

  1. 선호하는 파이썬 버전을 설치하십시오 (이것은 소스를 다운로드하여 사용자를 위해 빌드 할 것입니다. 입력 할 필요는 없습니다)

    pyenv install 3.6.0
  2. 원하는 경우 나중에 다른 사람을 만들 수 있도록 virtualenv로 만드십시오.

    pyenv virtualenv 3.6.0 general
  3. 전 세계적으로 활성화 (사용자 용)

    pyenv global general
  4. 파이썬 / 핍 등으로 원하는 것을하십시오. 그것은 당신의 것입니다.

나중에 라이브러리를 정리하려면 virtualenv ( pyenv uninstall general)를 삭제 하거나 새로 만들 수 있습니다 ( pyenv virtualenv 3.6.0 other_proj). 디렉토리별로 환경을 활성화 할 수도 있습니다. 현재 폴더에 파일을 pyenv local other_proj드롭하고 .python-versionPython 또는 pip 설치 Python 유틸리티를 호출 할 때마다 또는 그 아래에서 pyenv에 의해 shim됩니다.

문제 해결

  • bash: pyenv: command not found, fish: Unknown command 'pyenv'

    1. 를 확인하십시오 . $PATH다음과 같이 끝나는 항목이 하나 있어야합니다 .pyenv/bin. 누락 된 경우 위의 pyenv 설치에서 # 3 AND # 4 (쉘을 다시 시작)를 따라야합니다.
  • pyenv: no such command 'virtualenv'

    1. 설치 관리자 스크립트를 사용하지 않았다면 루트 pyenv 패키지 만 설치했을 것입니다. 플러그인 추가 지침 은 pyenv-virtualenv 를 참조하십시오.
    2. 설치 관리자 스크립트를 사용한 경우가 표시되는지 확인하십시오 pyenv commands.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.