it-swarm-eu.dev

Jak na Ubuntu nainstalovat nejnovější Python 2,7.X nebo 3.X)?

Chci nainstalovat nejnovější Python tarball na Ubuntu, stažené z http://python.org/download/ .

Je to správný způsob instalace?

./configure
make
make install

Pokud ne, jak to mám udělat?

185
mohammads

Nejprve nainstalujte některé závislosti:

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

Poté stáhněte pomocí následujícího příkazu:

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

Rozbalte a přejděte do adresáře:

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

Nyní nainstalujte pomocí příkazu, který jste právě vyzkoušeli, místo toho pomocí checkinstall, abyste v případě potřeby usnadnili odinstalaci:

./configure
make
Sudo checkinstall

Změňte version na kteroukoli verzi, kterou potřebujete (version=2.7.1 nebo version=3.6.0, například).

200
Achu

Pokud nemáte opravdu touhu po kompilaci sami, upřednostňovaným způsobem je použití DeadSnakes PPA k instalaci verzí Python, které nejsou standardně zahrnuty:

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

Jiné verze, například python2.4 nebo python3.6 atd. jsou také k dispozici.

182
brousch

Pokračování v dokumentaci pro nejnovější vydání Ubuntu1 : pro server Ubuntu 16.04.1 je výchozí Python je verze 3.5 a Python 2,7 je ve výchozím nastavení nainstalováno ne.) nová instalace (všimněte si, že není ani spustitelný soubor 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>

Poznámka: Před pokračováním budete pravděpodobně chtít udělat rychlý Sudo apt-get update, Sudo apt-get upgrade, a Sudo apt-get dist-upgrade (nezapomeňte přesně, co tyto příkazy ve skutečnosti dělají; předpokládám novou instalaci zde.)

Instalace python 2,7 je stejně snadná jako:

$ Sudo apt-get install python2.7

Počáteční výstup instalace python 2,7) je následující:

$ 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 instalaci python 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

Stále však existuje problém, protože zatím nemůžete nainstalovat moduly PyPI přes pip - např. Pokud chcete notebook Jupyter nebo nejnovější scipy nebo numpy (atd.), Budete chtít nainstalovat pip a poté pip install a stále se obracíme k apt-get k instalaci všech potřebných systémových závislostí, jako jsou knihovny grafviz nebo jádra systému.

$ 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

Chcete-li tedy nainstalovat pip, je to stejně snadné jako 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

Budete potřebovat oba python-pip pro Python 2,7 pip a python3-pip pro Python 3 pip. Instalace pomocí apt-get si zajistěte instalaci požadovaných závislostí; Zde je výstup pro instalaci 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...

Výsledkem je zajímavá věc: nyní máte „standard“ (a PEP doporučeno) python2 a python3 (což jsou jen odkazy na python 2,7 a python 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

Budete také chtít Sudo apt-get install python3-pip; před instalací máte:

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

Výsledné verze:

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

A ještě poslední věc, než můžete jít a začít instalovat všechny své oblíbené python PyPI moduly): pravděpodobně budete muset upgradovat samotný pip (oba pip2 a pip3, samostatně; také to ne záleží na tom, zda je pip vyvolán prostřednictvím spustitelných souborů python nebo spustitelných souborů pip, skutečné aktualizace jsou uloženy v /usr/lib):

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

Nyní můžete spustit buď samostatný pip nebo verzi seskupenou uvnitř python (přes python -m pip {command}).


[1] Historická rekapitulace: starší Ubuntu měl pouze Python 2,6, tedy všechny různé metody, jak získat Python 2,7++). Později, po přidání Python 2,7 byl přidán do veřejných úložišť, stále jsme měli stejnou výzvu k instalaci nejnovějšího Python 2,7 s nejnovějšími opravami, což bylo (také) ) často nutné. Dnešní situace je mnohem lepší/jednodušší: současná Python 2,7 a 3,5 (v podstatě jediná dvě Python verze platformy, o které se lidé starají)) jsou nyní ve veřejných repozitářích, jsou velmi stabilní, takže teď si opravdu musíme jen dělat starosti s instalací nejnovějších python moduly, ne nejnovějších python. Teď se Python "problém s nejnovější verzí" přesunul částečně z repozitářů operačního systému & apt a do PyPI & pip.)

26
michael

12,04

Pokud sledujete Achuova odpověď , pak výraz libread5-dev by mělo být změněno na libreadline-gplv2-dev. Úplným příkazem by tedy bylo:

Sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
11
ThatGuy

Můžete si ji také stáhnout a nainstalovat pomocí 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
4
Whispered

Většinou zrcadlo tato odpověď s vylepšeným úvodem

Doporučil bych pyenv . Automatizuje proces sestavení kromě instalace závislostí záhlaví (viz níže). Můžete vytvořit a nainstalovat novou (nebo starou) verzi Python) jednoduše vyslovením pyenv install 3.6.0. Všechno běží jako uživatel, takže se nemusíte starat o zmatení Python , který používá samotný Ubuntu.

Na rozdíl od některých možností založených na apt-repo (např. Mrtvých hadů), bude obecně fungovat ve stejný den vydání po pyenv update protože nemusíte čekat, až si ho někdo zabalí. Podívejte se na všechny verze, které můžete nainstalovat pomocí pyenv install --list

Nainstalujte pyenv

  1. Nainstalujte nástroje a záhlaví potřebné k vytvoření CPythonů (exotické Pythony jako PyPy nebo Jython mohou mít jiné závislosti). Git je používán pyenvem a navíc také umožňuje vytvářet/instalovat zdrojové větve, takže byste mohli nainstalovat cokoli, co je právě teď, tj. Hlavní větev CPythonu, čerstvá z GitHub:

    Sudo apt-get install -y git
    Sudo apt-get install -y build-essential libbz2-dev libssl-dev libreadline-dev \
                            libffi-dev libsqlite3-dev tk-dev
    
    # optional scientific package headers (for Numpy, Matplotlib, SciPy, etc.)
    Sudo apt-get install -y libpng-dev libfreetype6-dev    
    
  2. Spusťte instalační skript (nainstaluje pyenv a některé velmi užitečné pluginy pyenv od původního autora; více viz zde )

    curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
    
  3. Přidejte řádky init do svého ~/.profile nebo ~/.bashrc (uvádí se na konci instalačního skriptu):

    export PATH="~/.pyenv/bin:$PATH"
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
    
  4. Restartujte prostředí (zavřete a otevřete nebo exec $Shell) nebo znovu načtěte skript profilu. (např. source ~/.bashrc)

Hotovo!

Nastavení prostředí

Chcete-li se nedotýkat systému Python (obecně špatný nápad; služby na úrovni operačního systému se mohou spoléhat na některé konkrétní verze knihovny atd.), Vytvořte si své vlastní prostředí, je to snadné! Ještě lepší, žádné Sudo, nebo pip instalací!

  1. Nainstalujte si preferovanou verzi Python verze (zdroj stáhne a vytvoří pro uživatele, není vyžadován žádný vstup))

    pyenv install 3.6.0
    
  2. Ať už je to virtualenv, takže si můžete udělat další, pokud budete chtít

    pyenv virtualenv 3.6.0 general
    
  3. Zajistěte, aby byl celosvětově aktivní (pro uživatele)

    pyenv global general
    
  4. Udělejte, co chcete, pomocí Pythonu/pip atd. Je to vaše.

Pokud si přejete vyčistit své knihovny později, můžete smazat virtualenv (pyenv uninstall general) nebo si vytvořte nový (pyenv virtualenv 3.6.0 other_proj). Můžete také mít aktivní prostředí v adresáři: pyenv local other_proj zahodí .python-version soubor do vaší aktuální složky a kdykoli vyvoláte Python nebo pip -instaled Python nástroje z něj nebo pod ním), budou opláchnuty pyenv.

Odstraňování problémů

  • bash: pyenv: command not found, fish: Unknown command 'pyenv'

    1. Zkontrolujte svůj $PATH, měla by existovat jedna položka, která končí něčím jako .pyenv/bin. Pokud chybí, ujistěte se, že jste postupovali podle # 3 A # 4 (restartujte Shell) v části Install pyenv výše.
  • pyenv: no such command 'virtualenv'

    1. Pokud jste instalační skript nepoužili, pravděpodobně jste nainstalovali pouze kořenový balíček pyenv. Pokyny pro přidání pluginu viz pyenv-virtualenv
    2. Pokud jste použili instalační skript, zkontrolujte, zda se zobrazuje s pyenv commands.
0
Nick T