Jak zainstalować najnowszy Python 2.7.X lub 3.X na Ubuntu?

156

Chcę zainstalować najnowsze archiwum Pythona na Ubuntu, pobrane z linku .

Czy to jest poprawny sposób instalacji?

./configure
make
make install

Jeśli nie, jak to zrobić?

    
zadawane Mohammads 05.02.2012, 13:02
źródło

5 odpowiedzi

183

Najpierw zainstaluj kilka zależności:

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

Następnie pobierz za pomocą następującego polecenia:

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

Wypakuj i przejdź do katalogu:

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

Teraz zainstaluj za pomocą polecenia, które właśnie wypróbowałeś, używając checkinstall , aby w razie potrzeby łatwiej było odinstalować:

./configure
make
sudo checkinstall

Zmień version na dowolną wersję, której potrzebujesz (na przykład version=2.7.1 lub version=3.6.0 ).

    
odpowiedział Achu 05.02.2012, 13:20
źródło
159

Jeśli naprawdę nie masz ochoty na samodzielną kompilację, preferowanym sposobem jest użycie DeadSnakes PPA zainstalować wersje Pythona, które nie są domyślnie włączone:

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

Dostępne są również inne wersje, takie jak python2.4 lub python3.6 itd.

    
odpowiedział brousch 05.02.2012, 15:40
źródło
24

Kontynuując dokumentowanie tego dla najnowszych wydań Ubuntu 1 : dla serwera Ubuntu 16.04.1, domyślny Python jest w wersji 3.5, a Python 2.7 jest domyślnie zainstalowany nie . Na świeżej instalacji (zauważ, że nie ma nawet pliku wykonywalnego 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>

Uwaga: przed kontynuowaniem będziesz prawdopodobnie chciał zrobić szybki sudo apt-get update , sudo apt-get upgrade i sudo apt-get dist-upgrade (proszę zanotuj dokładnie, co te polecenia faktycznie robią, zakładam świeżą instalację tutaj. )

Instalacja Pythona 2.7 jest tak prosta jak:

$ sudo apt-get install python2.7

Początkowe wyjście instalacji Pythona 2.7 wygląda następująco:

$ 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...

Po zainstalowaniu Pythona 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

Ale wciąż jest problem, ponieważ nie możesz jeszcze zainstalować modułów PyPI przez pip - np. jeśli chcesz mieć notatnik jupyter, najnowszy scipy lub numpy (itp.), powinieneś zainstalować pip , a następnie pip install , i nadal zwracając się do apt-get , aby zainstalować potrzebne zależności systemowe , takie jak graphviz lub biblioteki systemu podstawowego.

$ 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

Aby zainstalować pip, znowu jest tak proste, jak 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

Będziesz potrzebował zarówno python-pip dla Pythona 2.7 pip , jak i python3-pip dla Pythona 3 pip . Instalacja za pomocą apt-get z pewnością zainstaluje wymagane zależności; np. tutaj jest wyjście do instalacji 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...

W rezultacie powstaje interesująca rzecz: teraz masz "standard" (i zalecany PEP) python2 i python3 (które są tylko dowiązaniami symbolicznymi do Pythona 2.7 i Pythona 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

Będziesz także chciał sudo apt-get install python3-pip ; przed instalacją masz:

$ 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

Po zainstalowaniu 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...

Powstałe wersje:

$ 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)

Jeszcze jedna rzecz, przed którą możesz zacząć instalować wszystkie swoje ulubione moduły Pythona PyPI: prawdopodobnie będziesz musiał sam zaktualizować pip (zarówno pip2, jak i pip3, osobno, a także, nie ma znaczenia, czy pip jest wywoływane przez pliki wykonywalne python lub pliki wykonywalne pip , rzeczywiste aktualizacje są przechowywane w /usr/lib ):

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

Możesz teraz uruchomić autonomiczny pip lub wersję w pakiecie w python (przez python -m pip {command} ).

[1] Historyczne podsumowanie: starsze Ubuntu miało tylko Python 2.6, a więc wszystkie różne metody instalacji Pythona 2.7+. Później, po dodaniu Pythona 2.7 do repozytoriów publicznych, wciąż mieliśmy takie samo wyzwanie, aby zainstalować najnowszy Python 2.7 z najnowszymi naprawami, co było (zbyt) często konieczne. Dzisiejsza sytuacja jest znacznie lepsza / prostsza: aktualny Python 2.7 & amp; 3.5 (w zasadzie jedyne dwie wersje Pythona, o które dbają ludzie), które są teraz w publicznych repozytoriach, są bardzo stabilne, więc teraz naprawdę musimy się tylko martwić instalowaniem najnowszego python modules , a nie najnowszego < em> python . Teraz problem "najnowszej wersji" Pythona przesunął częściowo z repozytoriów systemu operacyjnego & amp; apt i do PyPI & amp; pip .)

    
odpowiedział michael 29.09.2016, 10:50
źródło
11

12.04

Jeśli podążacie za odpowiedzą Achu , to termin libread5-dev powinien zostać zmieniony na libreadline-gplv2-dev . Tak więc pełne polecenie byłoby:

sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
    
odpowiedział ThatGuy 26.07.2012, 16:37
źródło
2

Możesz także pobrać i zainstalować za pośrednictwem 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
    
odpowiedział Whispered 30.03.2017, 09:38
źródło

Przeczytaj inne pytania na temat tagów