pyenv
这种方法不使用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-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
我们看到
which python
指向的是:
~/.pyenv/shims/python
因为rc脚本将
~/.pyenv/shims
添加到
PATH
中。
还需要进一步了解。全局版本是通过某种方式确定的:
~/.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上进行了测试。
E: Couldn't find any package by regex 'python3.5'
的错误,导致无法通过apt-get install python3.5
安装成功? - Charlie Parkerupdate-alternatives
。请点击此链接https://www.itsupportwale.com/blog/how-to-upgrade-to-python-3-7-on-ubuntu-18-10/ 使用update-alternatives
来升级Python。 - goonerifyupdate-alternatives
。我希望只需安装一个Python二进制文件,包括版本号,并在venv
安装中使用该路径,以便在该环境中可用的python
是安装的那个版本。我认为将当前系统版本的Python移动到其他位置并不是一个好主意。这就是被接受答案所支持的方法。 - NeilG