Vraag Hoe installeer ik een andere Python-versie met apt-get?


Hoe kan ik een andere versie van Python installeren met apt-get?

Uiteraard realiseer ik me dat ik kan installeren met de source tar-bal, maar ik zou liever niet installeren vanaf de bron en in plaats daarvan de pakketbeheerder gebruiken, want daar is het voor. Natuurlijk bouwt een gerenommeerd .deb-bestand voor de nieuwste Python-releases (waarom python.org niet buiten mij staat) waarnaar ik kan verwijzen.

Wat moet ik doen om ernaar te verwijzen en welke problemen kan het veroorzaken bij het upgraden naar de volgende versie?

Als er geen manier is behalve om te bouwen vanaf de bron, is er dan een (pseudo) pakket dat ik kan installeren dat alle afhankelijkheden biedt die nodig zijn zonder dat ik elk afzonderlijk moet vinden en installeren? Zodat ik niet krijg:

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

103
2017-10-08 06:06


oorsprong


askubuntu.com/questions/674586/... - h0ch5tr4355
heb je ooit gekregen E: Couldn't find any package by regex 'python3.5' en dus niet te installeren via apt-get install python3.5? - Charlie Parker
vergelijkbare vraag: askubuntu.com/questions/310441/... - Charlie Parker
enkele goede suggesties hier: quora.com/... - Charlie Parker
@CharlieParker Heb je geprobeerd te installeren? Anaconda ? - M. Becerra


antwoorden:


Felix Krull heeft in principe een PPA-aanbod ieder versie van Python (serieus, er is 2.3.7 build for levendig ...) voor veel Ubuntu-releases op https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa.

Doe het gebruikelijke:

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

Het zal je bestaande niet overschrijven python3.4 die nog steeds wordt aangeduid als python3.

Verander de symlink NIET! Er zijn blijkbaar veel systeemfuncties die niet goed werken met python3.5.

Ik probeerde dit en kon daarna geen terminal, software-updater, ... openen

cd /usr/bin
sudo rm python3

De upgrade naar Wily past het metapakket aan python3 wijzen naar python3.5. Ik verwacht geen breuk, maar op dit punt is de buitenlandse repository niet meer nodig. Dus om echt veilig te zijn, kunt u de PPA opschonen voordat u de upgrade uitvoert.


141
2017-10-08 06:34



voor noob's daarbuiten, geen symlink! ook niet symbolisch betekent alleen dat je python3.5 vanaf de opdrachtregel moet typen om Python 3.5 uit te voeren - Chris Hawkes
Kun je me wijzen, hoe kan ik 3.4's pip gebruiken met deze 3.5? - Groosha
geprobeerd dit op osmc-release op raspberri pi, werkte niet (waarschijnlijk als gevolg van 'Err ppa.launchpad.net jessie / main armhf Pakketten 404 niet gevonden '). Ik kon python3.5 niet uit de repository halen, alleen 3.4. Bouwen vanaf de bron na het installeren van de essentiële build werkte echter. - verboze
@ kondra007 Ik volgde instructies van pip.pypa.io/en/stable/installing (gelieve lees de waarschuwing daar) en deze twee bevelen wget https://bootstrap.pypa.io/get-pip.py; sudo python3.5 get-pip.py gaf me een werkende pip voor python 3.5 maar pip3.4 werkt niet meer. Als iemand het beter weet, reageer dan alsjeblieft - ndemou
Ook om python3.5 als standaard in te stellen ~$ vim ~/.bashrc en voeg dit toe alias python=python3.5. dan ~$source ~/.bashrc - Krishnadas PC


Deze YouTube-link heeft me geholpen om het te installeren.

De stappen zijn:

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

Om te controleren of python is geïnstalleerd, typt u python3.5 anders:

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

30
2018-01-31 05:33



OP zei dat hij niet van de bron wilde compileren - Michael Bates
Ja je hebt gelijk. Ook compileren van de bron kan verderop wat afhankelijkheidsproblemen introduceren. Maar zo heb ik het opgelost. Als er een betere manier is zou ik het zeker willen weten. - joydeep bhattacharjee
Er is iets veranderd in het vierde commando, het zou cd Python-3.5.0 moeten zijn in plaats van cd Python-3.5.0.tgz. - Imran
Overwegen ./configure --enable-optimizations  stackoverflow.com/questions/41405728/... - warvariuc
Je hebt ook c / c ++ compiler nodig van apt-get install build-essential - bato3


Volg gewoon deze stappen (getest):

Stap 1 - Installeer de vereiste pakketten

Gebruik de volgende opdracht om de vereisten voor Python te installeren voordat u deze installeert.

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

Stap 2 - Download Python 3.5.2

Download Python met behulp van het volgende commando van de officiële python-site. U kunt de nieuwste versie ook downloaden in plaats van hieronder aangegeven.

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

Pak nu het gedownloade pakket uit.

sudo tar xzf Python-3.5.2.tgz

Stap 3 - Stel de Python-bron samen

Gebruik de onderstaande set opdrachten om de python-broncode op uw systeem te compileren met behulp van altinstall.

cd Python-3.5.2
sudo ./configure
sudo make altinstall

make altinstall wordt gebruikt om te voorkomen dat het standaard python-binaire bestand wordt vervangen /usr/bin/python.

Stap 4 - Controleer de Python-versie

Controleer de nieuwste versie van python met onderstaande opdracht.

$ python3.5 -V

Python 3.5.2

Bron.


9
2018-03-08 16:47



+1 voor het standaard gebruiken van altinstall. Er zijn niet veel echte scenario's waarin je kunt leven met slechts één versie. Zelfs van systemen met Python3 als standaard kun je worden gedwongen om Python als omgekeerd te installeren -> Python2 in plaats daarvan of door Python2 toe te voegen. - erm3nda


Voor zover ik weet, kan in ieder geval in een dockercontainer definitief worden apt-get python 3.

Eerst kwam ik een ubuntu-container met container tegen:

docker run -it --rm ubuntu:latest bash

om een ​​of andere reden moest ik wat ubuntu-dingen bijwerken, dus dat deed ik (in de container):

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

en toen installeerde ik eenvoudig python3 en het lijkt erop dat het automatisch python 3.5 heeft:

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

en om te testen of pip werkt, kun je iets downloaden:

pip3 install tensorflow

alles lijkt goed te werken voor mij.

Belangrijke opmerking: het lijkt erop dat als je Python 3.4 al hebt geïnstalleerd apt-get install python3werkt niet omdat het zegt dat je het al hebt. Het lijkt erop dat dit een van mijn problemen was omdat ik begon met een docker-afbeelding van tensorflow (in het bijzonder gcr.io/tensorflow/tensorflow:latest-devel-py3) en iets in die afbeelding (ik neem aan dat ze al python 3.4 hebben maar misschien iets anders) stond me niet toe mijn python bij te werken om python 3.5 te krijgen.


tegoed: ik ontdekte dit toen ik het volgende vroeg: https://stackoverflow.com/questions/42122826/can-one-use-python-3-5-in-a-docker-container-based-out-of-the-tensorflow-docker


Let op: men kan ook gewoon Anaconda installeren. Voor een docker-voorbeeld kan men het volgende doen:

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

van hun officiële website: https://hub.docker.com/r/continuumio/anaconda3/

Deze oplossing installeert python 3.6, maar ik ben er zeker van dat als je daar naar kijkt, je Python 3.5 kunt krijgen als je dat wilt.

Opmerking: je zou sowieso waarschijnlijk een virtuele omgeving zoals virtual env of conda / anaconda moeten gebruiken, tenzij je toch een docker gebruikt. Ik wilde mensen gewoon herinneren.


6
2018-02-09 19:56



"in een docker-container" is een zeer algemene verklaring: het hangt allemaal af van welke afbeelding de container is gebaseerd, bijvoorbeeld welke versie van Ubuntu. Bovendien kunnen er kleinere versies zijn zoals 3.5 of 3.6 die niet beschikbaar zijn in één Ubuntu-versie (bijvoorbeeld 14.04) - giorgiosironi


Er zijn een aantal nieuwere python-distributies beschikbaar om te installeren via apt-get Ubuntu-pakketten

als een voorbeeld zijn de volgende versies momenteel beschikbaar:

python2.7

python3.2

python3.4

python3.5

python3.6

Beschikbaarheid verschilt enigszins met de Ubuntu-release. 3.5 is bijvoorbeeld beschikbaar voor Xenial, Yakkety en Zesty en 3.6 is beschikbaar voor Yakkety en Zesty, maar u moet de Universe-repository indien niet ingeschakeld om ze te verkrijgen via apt-get. Controleer de bovenstaande links om de beschikbaarheid van uw versie van Ubuntu te controleren.

Een snelle blik geeft dat aan dit antwoord is ook nog steeds geldig omdat die PPA 3.6 heeft, zelfs voor Trusty.


2
2018-02-13 23:24



de Python-versies zijn beschikbaar in Ubuntu Repo zijn niet de nieuwste Python-versie. - yaitloutou
@yaitloutou De vraag luidt: "nieuwer" niet "nieuwste" Voel je vrij om een ​​beter antwoord te schrijven. - Elder Geek
Je hebt gelijk, maar sinds nieuwer ten opzichte van wat niet is gespecificeerd, heb ik het geïnterpreteerd als nieuwste :) - yaitloutou
@yaitloutou Voel je vrij en schrijf in ieder geval een beter antwoord! Ik weet zeker dat het gewaardeerd zou worden. - Elder Geek
Ik ben net begonnen om hier actief te worden, en ik ben nog steeds aan het leren. Sorry als je mijn commentaar op je antwoord opdringerig vindt - yaitloutou


Ik zou overwegen om via apt-get virtuele omgevingen te gebruiken in plaats van python-versies te installeren.

Met behulp van virtuele omgevingen, kijk hier,  zijn een goede gewoonte om met python te ontwikkelen. Ze laten je jouw python-omgeving isoleren van de systeem geïnstalleerde python-versies.

Bovendien hoeft u geen sudo-toegang te krijgen tijdens het installeren van een bibliotheek (via pip enz.).


0
2018-06-21 06:20



Ik denk dat je de gewenste versie van python moet installeren voordat je deze in een virtuele omgeving kunt gebruiken. - Nzbuu
U installeert de gewenste versie van python in de virtuele omgeving, dan dat u uw python-gerelateerde pad wijzigt door het script "activeren" in een virtuele omgeving uit te voeren. - devrimbaris
Dit is eigenlijk precies wat ik wil doen - het eerste wat ik probeerde na het volgen van het antwoord van @ Nephente was erop virtualenv -p. Maar het ontplofte met "ImportError: can not import name 'HTTPSHandler'". - Michael Scheper
waarom was dit overstemd? virtuele envs werken meestal prima. - Charlie Parker
hoe installeer je een virtuele env in ubuntu (zoals in je suggestie) maar met python 3.5? - Charlie Parker


Conda wordt actief bijgewerkt en stelt u in staat meerdere python-versies te installeren in beheerde venv's zonder de saaiheid om alles zelf in te stellen. Binaire problemen met extensiepaden zijn mogelijk opgelost in veel van de door anaconda beheerde afhankelijkheid / pip chains die het gebruikt.


0
2018-02-10 19:55





Op Ubuntu 16.04.1 LTS je hebt zowel python 2 (python) als python3 al geïnstalleerd.

Om het thema bij te werken de laatste versie, je kunt als volgt verder gaan:

1- Werk de pakketlijst bij en upgrade al uw systeemsoftware naar de nieuwste beschikbare versie

sudo apt update && sudo apt -y upgrade


2- installeren python-pip en python3-pip (alternatief Python-pakketinstallatieprogramma) uit Ubuntu-opslagplaatsen

sudo apt install python-pip
sudo apt install python3-pip

2' controleer de versie

pip -V; pip3 -V


3- upgrade Pip (De door PyPA aanbevolen tool voor het installeren van Python-pakketten) naar de laatste versie in PyPI (de Python-pakketindex)

sudo -H pip3 install --upgrade pip 
sudo -H pip install --upgrade pip

3' controleer de versie

pip -V; pip3 -V

je zou een uitvoer moeten krijgen die lijkt op:

pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)


4- (optioneel) Een python-subversie per project / applicatie kunnen gebruiken en de afhankelijkheden die door verschillende projecten zijn vereist gescheiden houden. je moet installeren virtualenv

[sudo -H] pip install virtualenv

-1
2018-02-12 22:04



Hoe beantwoordt dit de vraag? - edwinksl
de vraag vraagt ​​om te installeren "de nieuwste releases van Python"  met behulp van een pakketbeheerder (in tegenstelling tot gebouw van bron). dit wordt hier beantwoord. dit antwoord gaat ook over "welke problemen kan het veroorzaken bij het upgraden naar de volgende versie?" en hoe ze te vermijden 4 . tussen haakjes, dit is een update. de oude vraag is al 2 jaar geleden beantwoord. - yaitloutou
De vraag gaat over het installeren van de Python-interpreter zelf, niet over pip of Python-pakketten die kunnen worden geïnstalleerd met pip. - edwinksl
de Python-interpreter is al geïnstalleerd, wat nog steeds nodig is, is deze te upgraden. en dit is wat ik hier heb uitgelegd. Als u de informatie in mijn antwoord onjuist of verouderd vindt, kunt u me dit laten weten. en als je denkt dat dit de huidige vraag niet beantwoordt, zoals je het begrijpt, voel je vrij om je kennis te delen, door een ander antwoord te plaatsen - yaitloutou
het is een beetje tangentieel aan de vraag, maar het meest upvoted antwoord installeert een versie van python zonder pip en pip aan het werk krijgen met dat antwoord is eigenlijk echt vervelend. Ik denk dat dit antwoord nuttig is. - Charlie Parker