pyenv
https://github.com/pyenv/pyenv
Pyenv 允许您在没有 sudo 的情况下为单个用户管理多个 Python 版本,就像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__)'
给出:
/home/ciro/.pyenv/versions/3.8.0/lib/python3.8/site-packages/cowsay/__init__.py
和:
which cowsay
给出:
/home/ciro/.pyenv/shims/cowsay
和:
which python
给出:
/home/ciro/.pyenv/shims/python
每个项目使用情况
在上一节中,我们看到了如何在全局设置中使用 pyenv。
但是,您通常想要的是在每个项目的基础上设置特定的 python 和包版本。这是如何做到的。
首先像以前一样安装所需的 Python 版本。
然后,在您的项目目录中,使用以下命令设置所需的 python 版本:
pyenv local 3.8.0
它创建一个.python-version
包含版本字符串的文件。
现在让我们为我们的项目在本地安装一个包: TODO:似乎没有什么好方法:Pyenv 选择 virtualenv 目录
现在,当有人想使用你的项目时,他们会这样做:
pyenv local
它将 Python 版本设置为正确的版本。
相关话题:
在 Ubuntu 18.04、pyenv 1.2.15 上测试。