pyenv 是一个python
版本管理软件。受到ruby
的同类软件 rbenv和 ruby-build的启发。
安装 pyenv
MacOS
使用homebrew
安装
1 | brew update |
Linux
1 | git clone https://github.com/pyenv/pyenv.git ~/.pyenv |
配置
在.bashrc
中添加下列内容:
1 | export PYENV_ROOT="$home/.pyenv" |
依赖环境
pyenv
可以用于安装多个python
版本,并对其进行管理。为了避免出现可能的错误,安装之前需要准备好依赖环境。
macos
1
brew install openssl readline sqlite xz zlib
如果运行 Mojave 或更高版本,还需额外安装
1
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Debian/Ubuntu
1
apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev
在服务器上
import pandas as pd
可能会出现lzma module could not found, your python was incomplete
这样的错误。解决办法是安装库liblzma-dev
。1
apt install liblzma-dev
安装python
pyenv install
命令用于安装指定python
版本。
为了添加framework
支持,安装代码应如下
1 | # MacOS |
若提示错误no module named pyexpat
,则用如下方式安装
1 | SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk MACOSX_DEPLOYMENT_TARGET=10.14 pyenv install 2.7.16 |
参考命令
查看已安装python版本
1 | pyenv versions |
版本切换
pyenv
总共设置了三个命令用于python
的版本控制,按优先级由高到低以此为
pyenv shell
pyenv local
pyenv global
pyenv shell
效果等价于设定环境变量pyenv_version
。
1 | pyenv shell 3.6.6 |
pyenv local
在当前目录下新建文件.python-version
,记录python
版本号,一行一个。如果当前目录下没有该文件,则一路往上寻找直到系统根目录。
1 | pyenv local 2.7.15 |
pyenv global
和pyenv global
对应的文件为$(pyenv root)/version
。
1 | pyenv global 2.7.10 |
有一个特殊的版本名system
是指pyenv
之外的python
(macos
自带,homebrew
安装版本等)。
三个命令都可以后接多个版本号。