пьенв
Этот метод не использует apt-get
, но это, я считаю, лучший вариант, доступный сегодня, поскольку он может легко скомпилировать для вас любую версию Python из исходного кода, так что вам не нужно полагаться ни на какие PPA.
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-problemssudo apt build-dep python3sudo 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.0python --versionpython3 --version
Оба выхода:
Python 3.8.0
Теперь мы можем приступить к установке и использованию пакетов в обычном режиме:
pip install cowsaypython -c 'import cowsay; cowsay.tux("Python is fun")'cowsay 'hello'
Мы можем подтвердить, что все установлено локально в нашей чистой среде с помощью:
python -c 'import cowsay; print(cowsay.__file__)'which cowsay
Мы видим, что which python
указывает на:
~/.pyenv/shims/python
потому что ~/.pyenv/shims
добавляется к PATH
с помощью rc-скриптов.
Чтобы разобраться дальше. Глобальная версия - это то, что определяется:
~/.pyenv/version
который теперь содержит:
3.8.0
Для каждого использования проекта
В предыдущем разделе мы рассмотрели, как использовать pyenv в глобальной настройке.
Однако то, что вы обычно хотите, - это установить конкретную версию python и пакета для каждого проекта. Вот как это сделать.
Сначала установите желаемую версию Python, как и раньше.
Затем из каталога вашего проекта установите желаемую версию python с помощью:
pyenv local 3.8.0
который создает файл .python-version
содержащий строку версии.
А теперь давайте установим пакет локально только для нашего проекта: TODO: кажется, нет хорошего способа: https://stackoverflow.com/questions/30407446/pyenv-choose-virtualenv-directory/59267972#59267972
Теперь, когда кто-то захочет использовать ваш проект, он сделает:
pyenv local
который устанавливает правильную версию Python.
Связанные темы:
Протестировано на Ubuntu 18.04, pyenv 1.2.15.