Apt-get kullanarak farklı bir Python sürümünü nasıl kurarım?


125

Apt-get kullanarak farklı bir Python sürümünü nasıl kurabilirim?

Açıkçası, kaynak tar topunu kullanarak kurulum yapabileceğimin farkındayım, ancak kaynaktan kurulum yapmamayı ve bunun yerine paket yöneticisini kullanmayı tercih ederim. Muhakkak ki bir yerde saygın, en son Python sürümleri için .deb dosyaları oluşturur (neden python.org benim dışımda değil).

Onlara referans vermek için ne yapmam gerekiyor ve bir sonraki sürüme yükseltirken hangi sorunları yaratabilir?

Kaynağından inşa etmenin dışında hiçbir yol yoksa, her birini ayrı ayrı bulmak ve kurmak zorunda kalmadan gereken tüm bağımlılıkları sağlayacak olan bir (sözde) paketi yükleyebilir miyim? Böylece anlamıyorum:

The necessary bits to build these optional modules were not found:
_bz2                  _curses               _curses_panel      
_dbm                  _gdbm                 _lzma              
_sqlite3              _ssl                  _tkinter           
readline              zlib  


daha önce hiç aldınız E: Couldn't find any package by regex 'python3.5've bu nedenle yükleme işleminde başarısız oldunuz apt-get install python3.5mu?
Charlie Parker


Burada bazı iyi öneriler: quora.com/…
Charlie Parker

1
@CharlieParker Anaconda'yı yüklemeyi denediniz mi ?
M. Becerra

Yanıtlar:


169

Felix Krull temelde bir PPA sunan çalışır herhangi Python sürümünü Ubuntu de serbest bırakır birçok (ciddi, canlı için 2.3.7 build var ...) https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa .

Her zamanki gibi yap:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5

python3.4Halen birbirine benzeyen varlığınızın üzerine yazmaz python3.

Sembolik bağlantıyı değiştirmeyin! Python3.5 ile düzgün çalışmayan pek çok sistem fonksiyonu vardır.

Bunu denedim ve daha sonra bir terminal açamadım, yazılım güncelleyici, ...

cd /usr/bin
sudo rm python3

Wily'e yükseltme, meta-paketi python3işaret edecek şekilde uyarlayacaktır python3.5. Herhangi bir kırılma beklemiyorum, ancak bu noktada yabancı depoya artık ihtiyaç duyulmuyor. Bu yüzden gerçekten güvende olmak için, yükseltme yapmadan önce PPA'yı temizleyebilirsiniz.


5
Noob orada, çünkü bağlantı yok! aynı zamanda sembolik bağlantı yapmamak sadece python 3.5 komutunu çalıştırmak için komut satırından python3.5 yazmanız gerektiği anlamına gelir
Chris Hawkes

4
Bana işaret edebilir misiniz, 3.4'ın pipini bu 3.5'le nasıl kullanabilirim?
Groosha

2
@ kondra007 pip.pypa.io/en/stable/installing adresindeki talimatları takip ettim (lütfen uyarıyı okuyun ) ve bu iki komut wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.pybana python 3.5 için çalışan bir pip verdi, ancak pip3.4 artık çalışmıyor. Birisi daha iyi bilirse lütfen yorum yapın
ndemou

2
Ayrıca python3.5'i varsayılan olarak ayarlamak ~$ vim ~/.bashrcve bunu eklemek için alias python=python3.5. o zaman~$source ~/.bashrc
Krishnadas PC,

1
İpuçları: eğer add-apt-repository: command not found, apt-get install software-properties-common python-software-propertiesyüklemek için koş
Mithril

35

Bu Youtube bağlantısı kurmamda bana yardımcı oldu.

Adımlar:

sudo apt-get install libssl-dev openssl
wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz
tar xzvf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
sudo make install

Python'un yüklü olup olmadığını kontrol etmek için python3.5başka bir tür yazın :

sudo ln -fs /opt/Python-3.5.0/Python /usr/bin/python3.5

3
OP, kaynaktan derlemek istemediğini söyledi
Michael Bates,

3
Evet haklısın. Ayrıca kaynaktan derlenmek, yolun ilerisinde bazı bağımlılık sorunlarına yol açabilir. Ama bu şekilde çözdüm. Daha iyi bir yol varsa kesinlikle bilmek isterdim.
joydeep bhattacharjee

5
Düşünün ./configure --enable-optimizations stackoverflow.com/questions/41405728/...
warvariuc

1
@CharlieParker, çünkü Python belirli bir işletim sistemi için yapılmadı. Herhangi bir platformda çalıştırılmak içindir. Linux için bu, her bir sürümün, her bir Linux dağıtımının (birçoğu bulunan) her bir sürümü için derlenmesi ve dağıtılması gerektiği veya kaynağını dağıttıkları ve kullanıcının, kendilerini kendi içinde olacakları ortamda derleyeceği anlamına gelir. Kullanılmış. İkincisi çok daha uygulanabilir.
CJStuart

2
Ayrıca c / c ++ derleyicisineapt-get install build-essential
bato3

13

Sadece şu adımları izleyin (test edildi):

Adım 1 - Gerekli Paketleri Kur

Yüklemeden önce Python için önkoşulları yüklemek için aşağıdaki komutu kullanın.

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

Adım 2 - Python 3.5.2'yi İndirin

Python resmi sitesinden aşağıdaki komutu kullanarak Python'u indirin. Ayrıca, aşağıda belirtilen yerine en son sürümü indirebilirsiniz.

cd /usr/src
sudo wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

Şimdi indirilen paketi çıkartın.

sudo tar xzf Python-3.5.2.tgz

Adım 3 - Python Kaynağını Derleyin

Altinstall kullanarak sisteminizde python kaynak kodunu derlemek için aşağıdaki komutları kullanın.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstallvarsayılan python ikili dosyasının değiştirilmesini önlemek için kullanılır /usr/bin/python.

Adım 4 - Python Sürümünü Kontrol Edin

Python'un en son sürümünü aşağıdaki komutu kullanarak kontrol ediniz.

$ python3.5 -V

Python 3.5.2

Kaynak .


2
Varsayılan olarak altinstall kullanmak için +1. Sadece bir versiyonla yaşayabileceğiniz pek çok gerçek senaryo yok. Varsayılan olarak Python3 bulunan sistemlerde bile Python'u tersine çevirmek zorunda kalabilirsiniz -> Python2 veya Python2 eklemek.
erm3nda

1
Burada açıklandığı gibi bir hatam var - bugs.python.org/issue31652sudo apt-get install libffi-dev sorunu çözmek için koşmak zorunda kaldı .
Nishan Chathuranga

Ayrıca sudo apt-get install liblzma-dev, lzma desteğini etkinleştirmek için eklerdim.
v.grabovets

6

Söyleyebileceğim kadarıyla, en azından bir liman işçisi konteynerinde, biri kesinlikle apt-getpiton 3 yapabilir .

İlk önce konteynerli bir ubuntu kabına rastladım:

docker run -it --rm ubuntu:latest bash

Sonra bazı nedenlerden dolayı bazı ubuntu sayfalarını güncellemeliydim, böylece yaptım (kabın içinde):

apt-get update && apt-get install -y build-essential git libjpeg-dev

ve sonra sadece python3'ü yükledim ve otomatik olarak python 3.5 var:

apt-get install python3
apt-get install python3-pip

pip'in çalışıp çalışmadığını test etmek için bir şeyler indirin:

pip3 install tensorflow

hepsi benim için iyi çalışıyor gibi görünüyor.

Önemli Not: Öyle görünüyor ki, eğer zaten kurulu olan python 3.4 yüklü ise, o apt-get install python3zaman işe yaramaz. Bu benim sorunlarımdan biriydi çünkü tensorflow'tan bir dock görüntüsünden başlıyordum (özellikle de gcr.io/tensorflow/tensorflow:latest-devel-py3) ve o görüntüdeki bir şey (onların zaten python 3.4'a sahip olduğunu sanıyorum ama başka bir şey olabilir) güncelleme yapmama izin vermedi benim python 3.5 python almak için.


kredi: Bunu sorduğumda bunu keşfettim: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out- of -tensorflow-docker


Not: Bir de sadece Anaconda'yı kurabilir. Liman işçisi örneği için aşağıdakiler yapılabilir:

docker pull continuumio/anaconda3
docker run -i -t continuumio/anaconda3 /bin/bash

resmi web sitelerinden: https://hub.docker.com/r/continuumio/anaconda3/

Bu çözüm python 3.6'yı yükler ancak eğer içine bakarsanız, istediğinizde python 3.5 elde edebileceğinizden eminim.

Not: muhtemelen yine de docker kullanmıyorsanız sanal env veya conda / anaconda gibi bir sanal ortam kullanıyor olmalısınız. Sadece insanlara hatırlatmak istedim.


1
"liman işçisi konteynerinde" çok genel bir ifadedir: tümü, örneğin Ubuntu'nun hangi sürümünün bulunduğu konteynerin dayandığı görüntüye bağlıdır. Ayrıca, bir Ubuntu sürümünde bulunmayan 3.5 veya 3.6 gibi küçük sürümler de olabilir (örneğin
14.04

2

Ubuntu Paketlerinde listelenen apt-get yolu ile kurulabilecek yeni python dağıtımları bulunmaktadır.

Örnek olarak şu versiyonlar mevcuttur:

python2.7

python3.2

python3.4

python3.5

python3.6

Kullanılabilirlik, Ubuntu sürümüne göre bir dereceye kadar değişir. Örneğin, Xenial, Yakkety ve Zesty için 3.5 ve Yakkety ve Zesty için 3.6 kullanılabilir, ancak apt-get ile almalarına izin verilmezse , Evren deposunu etkinleştirmeniz gerekir . Ubuntu sürümünüzün uygun olup olmadığını kontrol etmek için yukarıdaki bağlantıları kontrol edin.

Hızlı bir bakış, bu cevabın hala PPA'nın Güven için bile 3.6 olduğu için geçerli olduğunu gösterir.



@yaitloutou Soru "yeni" diyor "yeni değil" elbette ki daha iyi bir cevap yazmaktan çekinmeyin.
Elder Geek

Haklısınız, ancak belirtilmediklerine göre nispeten daha yeni olduğundan, onu en yeni olarak yorumladım :)
yaitloutou

@yaitloutou Çekinmeyin ve elbette daha iyi bir cevap yazın! Bunun takdir edileceğine eminim.
Yaşlı Geek

Burada daha yeni aktif olmaya başladım ve hala öğreniyorum. Cevabınızla ilgili
yorumumu bulduğum için üzgünüm

0

Python sürümlerini apt-get yoluyla kurmak yerine sanal ortamları kullanmayı düşünürdüm.

Sanal ortamları kullanarak, buraya bakın, python ile geliştirme için iyi bir uygulamadır. Python ortamınızı sistem yüklü python sürümlerinden izole etmenize izin verir.

Ek olarak, herhangi bir kütüphane kurarken sudo erişimine sahip olmanız gerekmez (pip vb.).


11
Sanal ortamda kullanabilmeniz için önce istediğiniz python sürümünü yüklemeniz gerektiğini düşünüyorum.
Nzbuu

1
İstenilen python sürümünü sanal ortama yüklersiniz, sanal ortamda "activate" komut dosyasını çalıştırarak python ile ilgili yolunuzu değiştirirsiniz.
devrimbaris

Bu aslında yapmak istediğim tam olarak budur - @ Nephente'nin cevabını takip ettikten sonra yapmaya çalıştığım ilk şey onu kullanmaktı virtualenv -p. Ancak "ImportError: 'HTTPSHandler' adını içe aktaramaz" ile birlikte havaya uçtu.
Michael Scheper

1
Bu neden indirildi? sanal envs genellikle iyi çalışır.
Charlie Parker

ubuntu'ya sanal bir env (önerideki gibi) fakat python 3.5 ile nasıl kurarsın?
Charlie Parker,

0

Conda , aktif olarak güncellenmektedir ve yönetilen vekillere her şeyi kendi kendine ayarlamaya gerek kalmadan birden fazla python sürümü yüklemenizi sağlar. İkili uzatma düzeltme problemleri, kullandığı anakonda yönetilen bağımlılık / pip zincirlerinin çoğunda çözülmüş olabilir.

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.