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__)'
which cowsay
每个项目的使用情况
在上一节中,我们看到了如何在全局设置中使用pyenv。
但是,您通常希望在每个项目的基础上设置特定的python和包版本。这是怎么做的。
首先像以前一样安装所需的Python版本。
然后,在项目目录中,使用以下命令设置所需的python版本:pyenv local 3.8.0
它创建一个包含版本字符串的文件.python-version。
现在让我们为我们的项目在本地安装一个包:TODO:似乎没有好的方法:Pyenv choose virtualenv directory
现在,当有人想使用你的项目时,他们会:pyenv local
它将Python版本设置为正确的版本。
相关线程:
在Ubuntu 18.04,pyenv 1.2.15上测试。