作者:E4b9a6, 创建:2021-06-15, 字数:1604, 已阅:120, 最后更新:2024-03-10
pyenv是目前管理Python版本的流行方案,可以完美地解决一台PC上存在多个Python版本的问题
pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
以下安装过程基于 Debian10,理论上Ubuntu也应该没有问题
首先安装必要的依赖软件
sudo apt update
sudo apt -y install git gcc libgdbm-dev make patch zlib1g-dev libssl-dev libsqlite3-dev libbz2-dev libreadline-dev build-essential python-dev python-setuptools openssl libffi-dev
安装pyenv并配置对应环境变量
这里我的Shell环境是ZSH,如果是Bash环境请修改对应 bashrc
文件
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
cat << EOF >>~/.zshrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
安装完成后,重新进入shell环境后使用pyenv
,如安装正常应该有对应的帮助输出
以下是常用命令
# 所有可安装的版本列表
pyenv install -list
# 下载制定版本的Python
pyenv install 3.6.9
# 查看当前已下载的版本
pyenv versions
# 设置系统的Python版本
pyenv global 3.6.9
# 设置当前目录为某个Python版本
pyenv local 3.6.9
# 更新pyenv
pyenv update
Visual Studio Code会自动识别当前目录的pyenv指定的版本
而Terminal在进入该目录时也会自动切换到该目录的Python版本
在一台PC上同一个版本的Python如何实现不同环境?可参考
virtualenv
(虚拟环境)
打包问题
Pyenv在编译安装Python版本时默认不生成共享库(shared-library)
所以涉及到一些Python打包的问题,可能会有打包异常的问题
所以在使用Pyenv安装Python版本时,也可加入参数强制生成共享库,如下
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.6.9
这个命令过长,每次安装版本都要输入非常不方便,可以考虑放到alias中命名为 pi
设置参考如下
echo "alias pi=\"env PYTHON_CONFIGURE_OPTS=\"--enable-shared\" pyenv install\"" >> ~/.zshrc