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?
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).
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.
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
.)
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
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
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 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
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
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 -)"
Restartujte prostředí (zavřete a otevřete nebo exec $Shell
) nebo znovu načtěte skript profilu. (např. source ~/.bashrc
)
Hotovo!
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í!
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
Ať už je to virtualenv, takže si můžete udělat další, pokud budete chtít
pyenv virtualenv 3.6.0 general
Zajistěte, aby byl celosvětově aktivní (pro uživatele)
pyenv global general
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.
bash: pyenv: command not found
, fish: Unknown command 'pyenv'
$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'
pyenv commands
.