pyenv
https://github.com/pyenv/pyenv
Pyenv позволяет вам управлять несколькими версиями Python без sudo для одного пользователя, так же, как Node.js NVM и Ruby RVM .
Установите Pyenv:
curl https://pyenv.run | bash
Затем добавьте в свой .bashrc
:
export PATH="${HOME}/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
Найдите версию Python для установки:
pyenv install --list
Установите нужную версию Python:
# 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
Список доступных версий Python:
pyenv versions
Теперь у нас есть:
* system (set by /home/cirsan01/.pyenv/version)
3.8.0
Выберите другую версию Python:
pyenv global 3.8.0
python --version
python3 --version
Оба вывода:
Python 3.8.0
Теперь мы можем приступить к установке и использованию пакетов в обычном режиме:
pip install cowsay
python -c 'import cowsay; cowsay.tux("Python is fun")'
cowsay 'hello'
Мы можем подтвердить, что все локально установлено в нашем чистом окружении с помощью:
python -c 'import cowsay; print(cowsay.__file__)'
which cowsay
За использование проекта
В предыдущем разделе мы увидели, как использовать pyenv в глобальной настройке.
Однако, как правило, вам нужно установить конкретную версию Python и пакета для каждого проекта. Вот как это сделать.
Сначала установите желаемую версию Python, как и раньше.
Затем из каталога вашего проекта установите желаемую версию Python с помощью:
pyenv local 3.8.0
который создает файл .python-version
содержащий строку версии.
А теперь давайте установим пакет локально только для нашего проекта: TODO: нет хорошего способа, которым это кажется: /programming/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Теперь, когда кто-то хочет использовать ваш проект, он будет делать:
pyenv local
который устанавливает правильную версию Python.
Связанные темы:
Проверено на Ubuntu 18.04, pyenv 1.2.15.