pyenv
重要特性:管理不同解释器版的同时,控制不同的包环境
一、安装pyenv
-
从github上clone项目到HOME目录下的.pyenv文件夹
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
-
增加SHELL的配置文件
- echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)" fi' >> ~/.bashrc - exec "$SHELL" - source .bashrc
二、下载不同的解释器版本
-
直接采用 pyenv install x.x.x, 会默认从python的官网下载,例如(https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz)这样网上会超级慢,并且几乎都是失败的
-
由于如上原因,先单独下载解释器的各种需要的版本到本地需要下载.xz格式的解释器包
-
如下载到Downloads文件夹下,利用
python3 -m http.server 8000
启动一个本地的服务器
-
再开启另一个terminal窗口,修改
export PYTHON_BUILD_MIRROR_URL="http://127.0.0.0:8000"
-
接下来尝试如:
pyenv install 3.8.0 -v
会遇到两个问题:
-
缺少依赖的包
sudo apt install libssl-dev
-
查找文件改名,从服务器日志可以看到,请求的文件名为一个uuid
127.0.0.1 - - [12/Aug/2020 20:19:33] code 404, message File not found 127.0.0.1 - - [12/Aug/2020 20:19:33] "HEAD /f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6 HTTP/1.1" 404 -
mv Python-3.8.0.tar.xz f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6
再次尝试安装就可以成功了。
-
-
三、添加插件pyenv-virtualenv
-
下载安装并配置文件
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc source ~/.bashrc
-
使用的方法
pyenv virtualenv 版本号 name 创建一个虚拟环境,命名为name 创建好后可通过pyenv versions来查看
pyenv activate name 切换到name虚拟环境中
pyenv deactivate 推出虚拟环境
pyenv virtualenv-delete name 删除name环境
pyenv virtualenvs 显示全部的环境