ubuntu 10.04 nemá balíček python2.7. 2.7 si musíte postavit sami. Když vyšlo 12.04, četl jsem článek o ubuntu uvolňujícím balíček python2.7, ale nejsem si jistý, jaké je umístění úložiště.
http://eli.thegreenplace.net/2011/10/10/installing-python-2-7-on-ubuntu/
nebo:
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python2.7
https://askubuntu.com/questions/101591/install-python-2-7-2-on-ubuntu-10-04-64-bit
tato otázka má mnoho odpovědí online.
pyenv
https://github.com/pyenv/pyenv
Pyenv vám umožňuje spravovat více verzí Pythonu bez sudo pro jednoho uživatele, podobně jako Node.js NVM a Ruby RVM.
Nainstalujte Pyenv:
curl https://pyenv.run | bash
Poté přidejte do .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Najděte verzi Pythonu k instalaci:
pyenv install --list
Nainstalujte požadovanou verzi pythonu:
# Increase the chances that the build will have all dependencies.
# https://github.com/pyenv/pyenv/wiki/Common-build-problems
sudo apt build-dep python3
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python-openssl git
# Build and install a Python version from source.
pyenv install 3.8.0
Seznam dostupných verzí Pythonu:
pyenv versions
Nyní máme:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Vyberte jinou verzi pythonu:
pyenv global 3.8.0
python --version
python3 --version
Oba výstupy:
Python 3.8.0
Nyní můžeme pokračovat v instalaci a používání balíčků normálně:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Můžeme potvrdit, že vše je lokálně nainstalováno v našem čistém prostředí pomocí:
python -c 'import cowsay; print(cowsay.__file__)'
dává:
/home/ciro/.pyenv/versions/3.8.0/lib/python3.8/site-packages/cowsay/__init__.py
a:
which cowsay
dává:
/home/ciro/.pyenv/shims/cowsay
a:
which python
dává:
/home/ciro/.pyenv/shims/python
Na využití projektu
V předchozí části jsme viděli, jak používat pyenv v globálním nastavení.
Co však obvykle chcete, je nastavit konkrétní verzi pythonu a balíčku pro každý projekt. Takto se to dělá.
Nejprve nainstalujte požadovanou verzi Pythonu jako dříve.
Poté z adresáře vašeho projektu nastavte požadovanou verzi pythonu pomocí:
pyenv local 3.8.0
který vytvoří soubor .python-version
obsahující řetězec verze.
A nyní nainstalujme lokálně balíček jen pro náš projekt:TODO:zdá se, že neexistuje žádný pěkný způsob:Pyenv si vybere adresář virtualenv
Nyní, když někdo bude chtít použít váš projekt, udělá:
pyenv local
který nastaví verzi Pythonu na správnou.
Související vlákna:
- https://askubuntu.com/questions/682869/how-do-i-install-a-different-python-version-using-apt-get
- https://unix.stackexchange.com/questions/9711/what-is-the-proper-way-to-manage-multiple-python-versions
- instalace apt-get pro různé verze pythonu
Testováno na Ubuntu 18.04, pyenv 1.2.15.
Python má své vlastní prostředky pro správu balíčků, paralelně k těm, které nastavují distribuce Linuxu (včetně Ubuntu). Úložiště je Pypi - Python Package Index a balíčky se instalují s pip
nebo skript easy_install, který je součástí balíčku setuptools v Pythonu.
Obecně platí, že byste neměli používat jak balíčky nainstalované přes pip/setuptools, tak balíčky dostupné pro vaše distro (přes apt-get, yum, urpmi atd...), protože by mohly být v konfliktu.
Takže jedním z méně náchylných způsobů, jak se s tím vypořádat, je mít v systému samostatné instalace Pythonu - ponechte python, který byl dodán se systémem, pro systémové skripty a podobně - v tomto pythonu použijte balíčky nainstalované správcem balíčků pouze. A nainstalujte další verze Pythonu (nebo dokonce stejné), které chcete spouštět s "virtualenv"s - na těchto dalších instalacích instalujete věci pouze pomocí pip/setuptools.
(A i když se člověk rozhodne žít odvážně a nepoužívat virtualenvs, nainstaluje další verzi pythonu na stejnou předponu (/usr
a dokonce /usr/local
), než je Python vašeho systému zdrojem matoucích chyb a konfliktů).
Všimněte si, že systémy Debian - a Ubuntu - vymyslely způsob, jak paralelně spouštět oficiální Python v /usr a mít apt-get k instalaci balíčků Pythonu do obou verzí Pythonu najednou. Většinou to funguje, ale pohrávají si s výchozí hierarchií adresářů Pythonu a některé aplikace takto Python nepoužívají. (Je také nepořádek najít samotné soubory modulů v Debianu nebo Ubuntu). Výše uvedená metoda tedy platí jako doporučení, i když váš systém má na apt-get k dispozici více než jednu verzi Pythonu.
Stručně řečeno, jakmile zkompilujete požadovanou verzi Pythonu, udělejte toto:
- použijte správce balíčků svého systému k instalaci "python-setuptools" a "python-virtualenv" (nejste si jisti, zda se jedná o skutečné názvy balíčků).
- Použijte
virtualenv
vytvořit prostředí, ze kterého budete používat svou jinou verzi Pythonu - Aktivujte své virtualenv a nainstalujte balíčky Pythonu pomocí
pip
na to.
Virtualenv obsahuje přepínač "--help", který vám pomůže, ale v zásadě ano:
$ virtualenv -p <path-to-python-interpreter> <environment-dir>
$ source <environment-dir>/bin/activate
A tady to máte – všechny věci, které používají Python, „uvidí“ interpret ve virtualenv, kvůli nastaveným proměnným prostředí.