Python 3.6을 설치하는 방법?


107

이 게시물 당시 3.6 인 최신 Python을 설치하고 싶습니다. 그러나 저장소는 Python 3.4.2가 최신 버전이라고 말합니다.

난 노력 했어:

$ sudo apt-get update
$ sudo apt-get install python3

python3 is already the newest version.

$ python -V

Python 3.4.2

Windows 워크 스테이션에서 Python 3.6으로 업그레이드하기 위해 exe를 다운로드하고 "다음"을 몇 번 클릭하면 완료됩니다. 데비안 Jessie에 Python 3.6을 설치하기 위해 적절하고 공식적으로 승인 된 절차는 무엇입니까?


6
기본 데비안 리포지토리에는 특정 데비안 버전 용으로 특별히 컴파일 된 소프트웨어 패키지가 포함되어 있습니다. 잠재적 인 불안정성을 피하기 위해 다음 주요 릴리스까지 대부분의 소프트웨어의 보안 업데이트 (바람직하게 보안 허점을 해결하는 데 필요한 최소한의 변경)를 제외하고 대부분의 소프트웨어 새 버전을 사용하지 못할 수 있습니다.
phk

@phk이 경우, pip와 유사한 동작을 채택하는 것이 현명하지 않을 것입니다. 즉, 버전이 지정되지 않은 경우 기본적으로 3.4.2로 설정되고 사용자가 플래그로 3.6을 명시 적으로 요청할 수 있습니까? 그냥 아이디어 :)
dvtan

1
이것은 데비안 사람들이 지원되는 모든 데비안 버전에 대해이 모든 파이썬 버전을 유지해야한다는 것을 의미합니다. 물론 자동화 할 수는 있지만 여전히 많이 있습니다. 또한 최신 버전을 원하는 고급 사용자는 사용자 지정 리포지토리를 사용할 수도 있습니다. 때로는 소프트웨어 제작자 자신이 데비안 및 기타 유명한 Linux 배포판 (예 : Oracle VirtualBox 의 경우)을 위해 유지 관리하는 경우도 있습니다.
phk

1
Python 3.6 ( rc1)은 데비안 실험에 도착했습니다. Jessie로 백 포트하는 것이 가능할 수도 있습니다.
Faheem Mitha

최신 정보. 이것으로 데비안 스 테이블 (jessie)을 성공적으로 구축했습니다. 그러나,이 성공적으로 설치하고 의미하지 않습니다 하지 문제가 발생할. 합리적인 다음 단계는 안정적인 테스트 VM에서 테스트하는 것입니다. 누구 신경 쓰나요?
Faheem Mitha

답변:


66

데비안의 저장소에는 Python 3.6이 없지만 테스트에는 있습니다.

$ sudo nano /etc/apt/sources.list
# add
deb http://ftp.de.debian.org/debian testing main
$ echo 'APT::Default-Release "stable";' | sudo tee -a /etc/apt/apt.conf.d/00local
$ sudo apt-get update
$ sudo apt-get -t testing install python3.6
$ python3.6 -V

당신은 물었다 :

적절하고 공식적으로 승인 된 절차

그러나 테스트 저장소를 사용하기 때문에 이것이 공식 솔루션이 아니라는 점을 지적해야합니다.


62
경고 : 이것은 현재 실행중인 데비안 릴리스 (아마도 '안정한') 플러스 '불안정한'플러스 '실험적'의 하이브리드로 시스템을 업그레이드합니다. 이것은 실험에서 몇 가지 패키지를 불안정하게 업그레이드하고 체리 따기보다 훨씬 나쁘거나 (더 나은 것은 백 포트에서 안정적으로 체리 따기 및 / 또는 불안정하고 / 또는 실험적으로 유지하는 것입니다). 이것에서 되 돌리는 것은 거의 불가능합니다. 데비안 및 데비안 패키징에 대한 많은 경험이 없으면 권장하지 않습니다
cas

8
apt의 기본 릴리스를 안정으로 설정하기 위해 답변을 편집했습니다. 제거 미친 'apt-get을 업그레이드'(업그레이드하는 모든 다른 패키지의 제거를 야기 할 수있는 모든 작업을 제외하고, 불안정하거나 실험에서 사용 가능한 최신 버전으로). 이 절차는 훨씬 덜 위험하지만 여전히 안전하지는 않습니다. 그리고 아직 초보자에게는 권장되지 않습니다. '실험적'은 일상적인 사용을위한 것이 아니며, '안정적인'상황에서도 충돌하거나 깨질 수있는 이상하고 테스트되지 않았으며 파손 된 물건을위한 것입니다. 또한 대규모 다중 패키지 업그레이드를위한 준비 영역으로 사용됩니다.
cas

1
python 3.6.2로 편집 된 답변은 현재 testing사용자에게 더 안전한 저장소에 있습니다.
m4p85r

4
이 시도하지 마십시오 - 그것은 취소하는 당신에게 나이를 취할 것
user3728501

1
2017 년 8 월 (또는 12 월)에 제안 된 것처럼 여전히 위험합니까? @cas가 편집하고 그의 의견을 작성한 후에는 더 이상 명확하지 않습니다. 누군가 후속 조치를 취할 수 있습니까?
Brian Peterson

154

Python-3.6다음과 같이 데비안 8에 설치할 수 있습니다 :

wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar xvf Python-3.6.9.tgz
cd Python-3.6.9
./configure --enable-optimizations --enable-shared
make -j8
sudo make altinstall
python3.6

공식 웹 사이트make altinstall 에 따라 사용하는 것이 좋습니다 .

당신이 원하는 경우에 pip포함되는, 당신은 추가 할 필요가 --with-ensurepip=install귀하의 구성 호출에. 자세한 내용은를 참조하십시오 ./configure --help.

경고 : make install파이썬 바이너리를 덮어 쓰거나 가장 할 수 있습니다. make altinstall따라서 make install설치 만하기 때문에 대신 권장 됩니다 exec_prefix/bin/pythonversion.

알려진 일부 문제를 피하려면 일부 패키지를 설치해야합니다. 일반적인 빌드 문제 (업데이트)

우분투 / 데비안 :

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev

libreadline-dev의 대안 :

sudo apt install libedit-dev

페도라 / CentOS / RHEL (aws ec2) :

sudo yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel xz xz-devel libffi-devel

openssl-devel의 대안 :

sudo yum install compat-openssl10-devel --allowerasing

최신 정보

여기 에서 최신 정보 python-x.y.z.tar.gz를 다운로드 할 수 있습니다 .

기본 파이썬 버전을 설정하고 쉽게 전환 update-alternatives하려면 여러 파이썬 버전 으로 업데이트해야합니다 .

python3.7on debian stretch를 설치했다고 가정 하고 명령 whereis python을 사용 하여 이진 ( */bin/python) 을 찾으십시오 . e, g :

/usr/local/bin/python3.7
/usr/bin/python2.7
/usr/bin/python3.5

파이썬 버전을 추가하십시오.

update-alternatives --install /usr/bin/python python /usr/local/bin/python3.7 50
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 40
update-alternatives --install /usr/bin/python python /usr/bin/python3.5 30

python3.750우선 순위는 이제 기본 파이썬의 인 python -V의지 인쇄 :

Python 3.7.0b2

그들 사이를 전환하려면 다음을 사용하십시오.

update-alternatives --config python

샘플 출력 :

There are 3 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                      Priority   Status
------------------------------------------------------------
* 0            /usr/local/bin/python3.7   50        auto mode
  1            /usr/bin/python2.7         40        manual mode
  2            /usr/bin/python3.5         30        manual mode
  3            /usr/local/bin/python3.7   50        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

5
데비안 사람들은 추천하지 checkinstall않습니까? 그렇지 않으면 /usr/local또는 에 설치하는 것이 좋습니다 /opt.
Ivan Anishchuk

3
./configure --helpPython 3.6 에 따르면 /usr/local기본적으로 설치됩니다 .
Markus Strauss

2
이 답변에 문제가 있습니까 (예 : SSL 모듈을 사용할 수 없거나 zlib이 없음)? 참조 : stackoverflow.com/a/41601137/972128
kkurian

11
면책 조항 : Pi zero와 같은 저전력 장치 에서는 20 시간 이상 이 걸립니다 .
Antoine Lizée

2
버전 3.7나왔습니다
Timo

32

공식 권장 사항은 "실제로 최신 소프트웨어가 필요하지 않음"입니다

반짝이는 새로운 물건 증후군-DontBreakDebian로 고통받지 마십시오 | 데비안 위키

이 페이지에있는 대부분의 조언은 소프트웨어를 시스템 전체에서 사용할 수있게하려면 어떻게해야하는지에 대한 것입니다.

파이썬 소스를 가져 와서 3.6 인터프리터를 사용하여 --prefix종료 위치를 제어 한 다음 옵션 virtualenv과 함께 --python사용하면 프로젝트 외부에 영향을 미치지 않고 파이썬 3.6을 사용할 수 있습니다.

프로세스는 다음과 같이 진행될 수 있습니다.

$ cd ~
$ mkdir pythonroot
$ mkdir opt
$ mkdir app
$ cd opt
$ wget <python tarball>
$ tar -xvf <python tarball>
$ cd python-3.6
$ ./configure --prefix="$HOME"/pythonroot
$ make
$ make install
$ cd ~
$ cd app
$ virtualenv venv --python ~/pythonroot/bin/python
$ . venv/bin/activate
[venv]$ which python
/home/<user>/pythonroot/bin/python

이 작업을 수행하려는 경우 프로파일 가이드 최적화와 같은 일부 기능을 활성화하는 것으로 보이는 Python 스크립트 에서 --enable-optimizations플래그 를 고려할 수 있습니다 configure. 일부 벤치 마크에 따르면 빌드 시간이 증가하지만 해석기가 10 % 정도 빠릅니다.


5
이것은 "실용성이 순도를 능가합니다"라는 일반적인 파이썬 규칙을 따릅니다. / opt / python-xyz의 소스 패키지에서 파이썬을 설치 한 다음 자체 virtualenvs에서 응용 프로그램을 실행하는 경향이 있습니다.
zgoda

1
중요 사항 : 이와 같은 작업을 수행하려는 경우 : Python 프로세스가 실행되는 모든 사용자가 virtualenv를 수정할 수 없는지 확인하십시오.
Gregory Nisbet

1
제 생각에는 이것이 가장 좋은 대답입니다.
BringBackCommodore64

이 조언에 감사드립니다. 과거에는 시스템 전체 애드온으로 데비안 설치를 중단했습니다.
동결 됨

내 설치 [venv]$ which python저를 포기하지 않는 /home/<user>/pythonroot/bin/python,하지만 /home/<user>/app/venv/bin/python3대신에 ... 왜?
동결 됨

12

당신은 한 번 봐 가지고 할 수 있습니다 pyenv: https://github.com/yyuu/pyenv를 . pyenvAmaral Lab 의 튜토리얼에서 인용하려면 :

이전에 Pythonbrew로 알려진 pyenv를 사용하면 전역 Python 버전을 변경하고 여러 Python 버전을 설치하며 디렉토리 (프로젝트) 별 Python 버전을 설정하고 가상 Python 환경 ( "virtualenvs")을 작성 / 관리 할 수 ​​있습니다. 이 모든 것은 Python 자체에 의존하지 않고 * NIX 스타일 머신 (Linux 및 OS X)에서 수행되며 sudo 명령이 없어도 사용자 레벨에서 작동합니다.


3
이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않을 수 있습니다. - 리뷰에서
Archemar

당신이 옳습니다, 대답을 바꿀 것입니다.
schaiba

1
나는 그가 필수 명령 줄도 포함하려고했다고 생각합니다.
not2qubit

임베디드 장치를 다루는 경우를 제외하고는 잘 작동합니다. 파이썬 버전을 "설치"하기 위해 소스가 로컬로 다운로드 및 컴파일됩니다. 그 외에도 pyenv는 훌륭한 선택이며 다른 디렉토리에서 다른 Python 버전을 실행하고 매우 성가신 PIP 문제를 처리하는 등 많은 유연성을 가지고 있습니다.
Brian Bulkowski

11

내가 선호하는 방법은 Anaconda 또는 Miniconda 를 사용 하여 데비안에 설치된 최신 버전의 Python 및 패키지를 유지하는 것입니다.

폴더에 깔끔하게 보관되어있어 나중에 원하는 경우 쉽게 제거 할 수 있습니다. 설치 프로그램은 또한 bashrc에 경로를 추가합니다 (다른 쉘을 사용하는 경우 직접 추가).

pip와 함께 제공되며 conda는 numpy와 같이 더 복잡한 pacakges에 적합 할 수있는 것보다 다른 패키지 관리자입니다. Miniconda는 기본 설치이며 Anaconda는 주로 데이터 분석 용으로 설계된 많은 패키지가 포함 된 전체 설치입니다.

빨리:

wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

bash add path를 사용하지 않는 경우 라이센스를 읽고 동의하십시오. export PATH="/home/$USER/miniconda3/bin:$PATH"

테스트:

$ python --version
Python 3.6.0 :: Continuum Analytics, Inc.

PyPi에서 설치 :

# pip install fava

conda에서 설치하십시오.

# conda install numpy

삭제하려면 ~/miniconda3bashrc에서 폴더 와 경로를 제거하십시오 .


소스에서 파이썬을 설치하는 데 끝없는 문제가 발생하면이 버전은 완벽하게 작동했습니다! 환경 관리를 위해 virtualenv (wrapper)로 작업하려면 miniconda 라이브러리 디렉토리를에 추가해야합니다 LD_LIBRARY_PATH. 예 :에 추가 export $LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/miniconda3/lib"하십시오 .bashrc.
jrast

"설치 프로그램은 bashrc에 경로를 추가합니다"이것이 아나콘다를 사용 하지 않는 주된 이유 입니다. 기존 파이썬 환경을 자동으로 마스킹하는 것은 건강하지 않습니다.
MisterMiyagi

3

데비안에는 리포지토리에 Python 3.6이 없습니다. 다음은 현재 Python3 상태의 스냅 샷입니다.

wheezy (oldstable) (python): interactive high-level object-oriented language (default python3 version)
    3.2.3-6: all
jessie (stable) (python): interactive high-level object-oriented language (default python3 version)
    3.4.2-2: amd64 arm64 armel armhf i386 mips mipsel powerpc ppc64el s390x
stretch (testing) (python): interactive high-level object-oriented language (default python3 version)
    3.5.1-4: amd64 arm64 armel armhf i386 mips mips64el mipsel ppc64el s390x
sid (unstable) (python): interactive high-level object-oriented language (default python3 version)
    3.5.1-4: alpha amd64 arm64 armel armhf hppa hurd-i386 i386 kfreebsd-amd64 kfreebsd-i386 m68k mips mips64el mipsel powerpc powerpcspe ppc64 ppc64el s390x sh4 sparc64 x32

여기서 확인할 수 있습니다 .

소스로부터 또는 홈 디렉토리 설치를 위해 Linuxbrew와 같은 것을 사용하여 3.6을 설치할 수 있습니다.


3

이것으로

sudo echo "http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list

sudo apt-get update
sudo apt-get install -y python3.6

성공적으로 작동합니다.

더보기 : python3.6을 기본값으로 설정

sudo alias python=/usr/bin/python3.6

지금 :

python --version
Python 3.6

읽어야합니다sudo echo "deb http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list
기울기

3
이 답변은 허용 된 답변과 동일하며 1 년 후 제공되었지만 올바른 명령을 제공하지 못합니다.
TomaSE

1

Python 3.6 ( rc1)은 데비안 실험에 도착했습니다. 데비안 스 테이블 (jessie)에서 이것을 성공적으로 만들 수있었습니다. 아래에 붙여 넣은 빌드의 마지막 단계를 참조하십시오.

그러나,이 성공적으로 설치하고 의미하지 않습니다 하지 문제가 발생할. 합리적인 다음 단계는 안정적인 테스트 VM에서 테스트하는 것입니다. 누군가 관심이 있다면 시도해 보거나 다른 사람이 시도해 볼 수 있습니다.

적절한 릴리스 버전이 곧 데비안 불안정에 도착해야합니다.

dh_builddeb -a
dpkg-deb: building package `python3.6' in `../python3.6_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-venv' in `../python3.6-venv_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-stdlib' in `../libpython3.6-stdlib_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-minimal' in `../python3.6-minimal_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-minimal' in `../libpython3.6-minimal_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6' in `../libpython3.6_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-dev' in `../python3.6-dev_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-dev' in `../libpython3.6-dev_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `python3.6-dbg' in `../python3.6-dbg_3.6.0~rc1-1_amd64.deb'.
dpkg-deb: building package `libpython3.6-dbg' in `../libpython3.6-dbg_3.6.0~rc1-1_amd64.deb'.
 dpkg-genchanges  >../python3.6_3.6.0~rc1-1_amd64.changes
dpkg-genchanges: including full source code in upload
 dpkg-source --after-build python3.6-3.6.0~rc1
dpkg-buildpackage: full upload (original source is included)
Now running lintian...
W: python3.6 source: newer-standards-version 3.9.8 (current is 3.9.6)
N: 56 tags overridden (26 errors, 27 warnings, 3 info)
Finished running lintian.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.