GNU/Linux >> Znalost Linux >  >> Linux

apt-get install pro různé verze pythonu

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:

  1. 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ů).
  2. Použijte virtualenv vytvořit prostředí, ze kterého budete používat svou jinou verzi Pythonu
  3. 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í.


Linux
  1. Jak nainstalovat Pip na Ubuntu – Správce balíčků pro Python

  2. Jak nainstalovat a přepnout verze Pythonu na Ubuntu 20.04

  3. Nainstalujte python-novaclient na Windows

  1. chybí modul python bz2

  2. Jak nainstalovat PhantomJS pro použití s ​​Python Selenium na Raspberry Pi?

  3. Jak lokálně nainstalovat .deb bez přístupu apt-get, dpkg nebo root?

  1. Jak nainstalovat Python na Linux

  2. Vytvořte virtuální prostředí pro různé verze Pythonu pomocí Conda

  3. Spusťte více verzí PHP pro různé domény v NGNIX