Python 3.6 nasıl kurulur?


107

Bu yazı sırasında 3.6 olan en son Python'u yüklemek istiyorum. Ancak depo, Python 3.4.2'nin en yeni sürüm olduğunu söylüyor.

Denedim:

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

python3 is already the newest version.

$ python -V

Python 3.4.2

Windows iş istasyonumda Python 3.6'ya yükseltmek için bir exe indirdim, birkaç kez "next" düğmesine tıkladım ve bitti. Python 3.6'yı Debian Jessie'ye kurmak için doğru ve resmi olarak kabul edilen prosedür nedir?


6
Varsayılan Debian havuzları, belirli bir Debian versiyonu için özel olarak derlenmiş yazılım paketleri içerir. Güvenlik güncelleştirmeleri (tercihen bir güvenlik deliğini düzeltmek için gereken en az değişiklik) hariç olmak üzere, çoğu yazılımın yeni sürümleri, potansiyel kararsızlığı önlemek için bir sonraki ana sürüme kadar mevcut olmayabilir.
phk

@phk Bu durumda, pip'e benzer bir davranış benimsemek, yani bir sürüm belirtilmediğinde varsayılan 3.4.2 olarak kabul etmek ve kullanıcının açıkça bir bayrakla 3.6 talep etmesine izin vermek akıllıca olmaz mı? Sadece bir fikir :)
dvtan

1
Bu, Debian milletinin desteklenen tüm Debian sürümleri için tüm Python sürümlerini sürdürmeleri gerektiği anlamına gelir. Elbette, otomatik olabilirdi ama yine de çok fazla olurdu. Ayrıca, daha yeni sürümler isteyen uzman kullanıcılar, özel depoları da kullanabilirler. Bazen, yazılım yazarları kendilerini örneğin Debian ve diğer popüler Linux dağıtımları için, örneğin Oracle VirtualBox için saklıyorlar .
phk

1
Python 3.6 (yine de rc1) Debian deneyseline yeni geldi. Muhtemelen küçük bir değişiklikle Jessie'ye destek vermek mümkün.
Faheem Mitha

Güncelleme. Bu benim için başarılı bir şekilde Debian istikrarlı (jessie) binasını bitirdi. Ancak, bu başarıyla yükleyip anlamına gelmez değil sorunlara neden. Makul bir sonraki adım, istikrarlı bir VM testinde test etmek olacaktır. Kimsenin umrunda mı?
Faheem Mitha

Yanıtlar:


66

Debian, depolarında Python 3.6'ya sahip değil, ancak testlerde var.

$ 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

İçin sordun:

uygun ve resmi olarak kabul edilmiş prosedür

ancak bunun test çözümü olmadığını çünkü bunun resmi bir çözüm olmadığını belirtmeliyim.


62
Uyarı: Bu, sisteminizi şu anda çalıştırdığınız debian salınımının melezine yükseltir (muhtemelen 'kararlı') artı 'dengesiz' artı 'deneysel'. Bu olacak çok kötü istikrarsız ve deneysel sadece birkaç paket kiraz toplama veya sadece dist-yükseltme daha (daha iyisi, ile kaldıkları istikrarlı ve kiraz toplama backports gelen ve / veya kararsız ve / veya deneysel). Bundan geri dönmek neredeyse imkansız olacak. Eğer Debian ve debian paketleri ile tecrübe bir LOT yoksa tavsiye DEĞİL
cas

8
apt'nin varsayılan sürümünü sabit olarak ayarlamak için yanıtı düzenledi. ve çılgın 'apt-get upgrade' ( başka bir paketin kaldırılmasına neden olacak herhangi bir şey hariç, dengesiz veya deneysel olarak mevcut en son sürümlere kadar her şeyi yükselten ) kaldırıldı. Bu işlem çok daha az tehlikeli ancak yine de güvenli olmamalı. Ve hala acemiler için önerilmez. 'deneysel' sıradan kullanım için değildir, 'dengesiz' bile olsa çatışabilecek veya parçalayabilecek tuhaf, denenmemiş, muhtemelen kırılmış şeyler içindir. Ayrıca büyük çoklu paket güncellemeleri için bir hazırlık alanı olarak kullanılır.
Cas

1
Python 3.6.2 olarak düzenlenmiş cevabı (şimdi) testingdepodaki ortalama kullanıcı için daha güvenlidir.
m4p85r

4
Bu çalışmayın - bu geri almak için size yaş alacaktır
user3728501

1
Ağustos (veya Aralık) 2017'de önerildiği gibi yapmak hala riskli mi? @Cas değiştirilip yorumunu yaptıktan sonra artık belli değil. Birisi takip edebilir mi?
Brian Peterson,

154

Python-3.6Debian 8'e aşağıdaki gibi yükleyebilirsiniz :

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

Resmi web sitesinemake altinstall göre kullanılması tavsiye edilir .

İsterseniz pipdahil edilecek, eklemek gerekir --with-ensurepip=installki yapilandirma çağrısına. Daha fazla ayrıntı için bkz ./configure --help.

Uyarı: make installpython binary'in üzerine yazabilir veya maskeleyebilir. make altinstallbu nedenle make installsadece kurulduğundan beri yerine tavsiye edilir exec_prefix/bin/pythonversion.

Bazı bilinen sorunlardan kaçınmak için bazı paketlerin kurulması gerekir, bkz: Genel derleme sorunları (güncellendi)

Ubuntu / Debian:

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 alternatifi:

sudo apt install libedit-dev

Fedora / CentOS / RHEL (ec2 aws):

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

Openssl-devel alternatifi:

sudo yum install compat-openssl10-devel --allowerasing

Güncelleme

Sen en son indirebilirsiniz python-x.y.z.tar.gzdan buraya .

Varsayılan bir python sürümü ayarlamak ve bunlar arasında kolayca geçiş yapmak için, sizi update-alternativesçoklu python sürümüyle güncellemeniz gerekir .

Diyelim ki python3.7on debian stretch'i kurdunuz, whereis pythonbinary ( */bin/python) komutunu bulmak için komutu kullanın . Örneğin:

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

Python sürümlerini ekleyin:

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.7İle 50öncelikli artık varsayılan piton olduğu python -Virade baskı:

Python 3.7.0b2

Aralarında geçiş yapmak için şunu kullanın:

update-alternatives --config python

Örnek çıktı:

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
Debian adamları tavsiye etmiyor checkinstallmu? Aksi takdirde, /usr/localveya 'ya kurmak akıllıca olacaktır /opt.
Ivan Anishchuk

3
./configure --helpPython'a göre 3.6 /usr/localvarsayılan başına kurulur .
Markus Strauss,

2
Bu cevapla ilgili sorun mu yaşıyorsunuz (örneğin, SSL modülü mevcut değil veya zlib eksik)? Bakınız: stackoverflow.com/a/41601137/972128
kkurian

11
Feragatname: Bu , Pi sıfır gibi düşük güçlü bir cihazda 20+ saat sürer .
Antoine Lizée

2
versiyonu 3.7olan dışarı
Timo

32

Resmi öneri "aslında daha yeni bir yazılıma gerek yok"

Parlak Yeni Şeyler Sendromu muzdarip etmeyin - DontBreakDebian | Debian Wiki

Bu sayfadaki tavsiyelerin çoğu, yazılımın sistem genelinde kullanılabilir olmasını istiyorsanız ne yapılması gerektiğine yöneliktir, ancak bu durumda bunun gerekli olduğunu sanmıyorum.

Eğer piton kaynaklarını getirme ise kullanılarak 3.6 tercüman inşa --prefixo kadar bittiği yerde kontrol etmek ve sonra kullanmak virtualenvile --pythondaha sonra projenize dışında bir şey etkilemeden piton 3,6 kullanabilirsiniz seçeneği.

İşlem şöyle bir şey olabilir:

$ 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

Bunu yapacaksanız, profil destekli optimizasyon gibi bazı özellikleri mümkün kılan Python betiğindeki --enable-optimizationsbayrağı göz önünde bulundurmak isteyebilirsiniz configure. Yapım zamanlarını arttırıyor ancak bazı kıyaslamalara göre daha hızlı bir tercümanla% 10 oranında sonuçlanıyor gibi görünüyor.


5
Bu, "Pratiklik saflığı yener" genel Python kuralını izler. / Opt / python-xyz içindeki kaynak paketlerden pitonları kurma eğilimindeyim ve sonra uygulamaları kendi sanalençlerinden çalıştırıyorum.
zgoda

1
Önemli not: Eğer böyle bir şey yapacaksanız: Python işleminiz hangi kullanıcı olursa, sanalenv'i değiştiremediğinden emin olun
Gregory Nisbet

1
Bence bu en iyi cevap.
BringBackCommodore64

Bu tavsiye için teşekkür ederim. Geçmişte sistem geniş addon ile bazı debian yüklemesini kırdım.
donmuş

In my yüklemek [venv]$ which pythonbana vermezsen /home/<user>/pythonroot/bin/python, ama /home/<user>/app/venv/bin/python3bunun yerine ... neden?
donmuş

12

Bir göz atmak isteyebilirsiniz pyenv: https://github.com/yyuu/pyenv . pyenvAmaral Lab’daki öğreticiden alıntı yapmak için :

Daha önce Pythonbrew olarak bilinen pyenv, genel Python sürümünü değiştirmenize, birden fazla Python sürümü kurmanıza, dizine (proje) özel Python sürümlerini ayarlamanıza ve evet, sanal python ortamları oluşturmanıza / yönetmenize ("sanalenv") izin verir. Bütün bunlar Python'un kendisine bağlı olmadan * NIX tarzı makinelerde (Linux ve OS X) yapılır ve kullanıcı seviyesinde çalışır - sudo komutlarına gerek yoktur.


3
Bu bağlantı soruyu cevaplayabilse de, cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak daha iyidir. Bağlantılı sayfa değişirse, yalnızca bağlantı yanıtları geçersiz olabilir. - Şu kaynaktan
Archemar

Haklısın, cevabı değiştirecek.
schaiba

1
Onun da çok önemlidir komut satırları dahil etmek anlamına düşünüyorum ...
not2qubit

Bu, gömülü aygıtlarla uğraştığınız durumlar dışında iyi çalışır. Bir python sürümünü "yüklemek" için kaynak yerel olarak indirilir ve derlenir. Bunun dışında, pyenv mükemmel bir seçimdir ve farklı dizinlerde farklı python sürümleri çalıştırmak ve çok sinir bozucu PIP problemleriyle uğraşmak gibi birçok esnekliğe sahiptir.
Brian Bulkowski

11

Tercih ettiğim yöntem, Debian'da yüklü olan python ve paketlerin en son sürümünü saklamak için Anaconda veya Miniconda'yı kullanmak .

Her şey, daha sonra isterseniz kolayca çıkarılmasını kolaylaştıran bir klasörde tutuluyor. Yükleyici ayrıca bashrc'nizin yolunu da ekler (başka bir kabuk kullanıyorsanız kendiniz ekleyin).

Pip ile birlikte gelir ve numpy gibi daha karmaşık malzemeler için iyi olabileceğinden başka bir paket yöneticisi olan conda da gelir. Miniconda çıplak bir kemik kurulumudur ve Anaconda, öncelikle veri analizi için tasarlanmış birçok pakete sahip tam bir kurulumdur.

Hızlı bir şekilde:

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

Bash ekleme yolunu kullanmıyorsanız lisansı okuyun ve kabul edin: export PATH="/home/$USER/miniconda3/bin:$PATH"

Ölçek:

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

PyPi'den yükleyin:

# pip install fava

Conda'dan yükle:

# conda install numpy

Silmek istediğinizde, klasörü ~/miniconda3ve bashrc'nizdeki yolu kaldırın .


Kaynaktan python kurulumu ile ilgili sonsuz problemden sonra, bu versiyon mükemmel çalıştı! Çevre yönetimi için virtualenv (sarmalayıcı) ile çalışmak istiyorsanız, miniconda kütüphanesi direcotry'ini eklemeniz gerektiğini unutmayın LD_LIBRARY_PATH. Ör: eklemek export $LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$HOME/miniconda3/lib"adresinden Müşteri .bashrc.
17'de

Ben do temel nedeni de budur "yükleyici ayrıca bashrc yolunu ekler" değil anaconda kullanın. Sessizce maskelemek mevcut bir python ortamını maskelemek için sağlıklı değil, en azından.
MisterMiyagi

3

Debian, depolarında Python 3.6'ya sahip değil. İşte mevcut Python3 durumunun bir anlık görüntüsü:

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

Bu kontrol edebilirsiniz burada .

3.6 kaynağını kullanarak veya bir ev dizini kurulumu için Linuxbrew gibi bir şey kullanarak yükleyebilirsiniz.


3

Bununla

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

Başarıyla çalışıyorum.

Daha fazla: python3.6'yı varsayılan olarak ayarlayın

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

Şimdi :

python --version
Python 3.6

Okumalısınızsudo echo "deb http://ftp.fr.debian.org/debian testing main" >> /etc/apt/sources.list
declension

3
Bu cevap, kabul edilen cevapla aynı, bir yıl sonra geldi ve yine de doğru komutları veremiyor.
Ocak'ta 마 SE'ye

1

Python 3.6 (yine de rc1) Debian deneyseline yeni geldi. Bunu Debian istikrarlı (jessie) üzerine başarıyla kurmayı başardım. Aşağı yapıştırılan yapının son adımlarına bakın.

Ancak, bu başarıyla yükleyip anlamına gelmez değil sorunlara neden. Makul bir sonraki adım, istikrarlı bir VM testinde test etmek olacaktır. Biri umurunda olursa, bir deneyebilirim - veya başkası deneyebilir.

Uygun bir sürüm sürümü Debian’a kısa sürede kararsız bir şekilde ulaşmalıdır.

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.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.