Skip to main content

pyenv python多版本

https://github.com/pyenv/pyenv#automatic-installer

直接curl脚本安装, 然后把下面的bash命令放到~/.profile~/.bashrc即可. 如果是zsh的, 则放在~/.zshrc中.

Automatic installer

curl https://pyenv.run | bash

执行完提示下面信息, 照办即可.

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by appending
# the following to
~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
and ~/.bashrc (for interactive shells) :

export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

# Restart your shell for the changes to take effect.

# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:

eval "$(pyenv virtualenv-init -)"
  • ~/.bashrc
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
  • ~/.profile
export PYENV_ROOT="$HOME/.pyenv"
command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile

然后执行 source ~/.bashrc进行激活, 或者额外重开shell.

安装python前的环境基础要求

有时候pyenv 安装python版本总有各种奇奇怪怪的报错, 就是因为依赖没安装全.

比如

ModuleNotFoundError: No module named '_lzma'

pyenv will try its best to download and compile the wanted Python version, but sometimes compilation fails because of unmet system dependencies, or compilation succeeds but the new Python version exhibits weird failures at runtime. The following instructions are our recommendations for a sane build environment.

Mac OS X

If you haven't done so, install Xcode Command Line Tools (xcode-select --install) and Homebrew. Then:

brew install openssl readline sqlite3 xz zlib tcl-tk

Ubuntu/Debian/Mint

sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

If you are going build PyPy from source or install other Python flavors that require CLang, also install llvm.

CentOS/Fedora 21 and below:

yum install gcc make patch zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel

简单使用

pyenv install pypy3.10-7.3.12

pyenv local pypy3.10-7.3.12
pyenv global pypy3.10-7.3.12