Python多版本及依赖包管理:pyenv+pipenv
导读:本文主要讲述如何通过 pyenv 来管理不同版本的 python ,以及如何使用 Pipenv 在同一个python版本实现项目之间依赖包的隔离。
pyenv
Linux系统下安装
curl https://pyenv.run | bash
验证是否安装成功:
# pyenv -v
pyenv 2.3.11
设置环境变量:
在 ~/.bashrc 中加入如下内容:
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
可以执行如下命令即可立即生效。
source ~/.bashrc
前置依赖包安装:
Pyenv的常见用法
查看可安装的python版本
pyenv install --list
当前目录切换python版本
pyenv local 3.11.1
全局切换python版本
pyenv global 3.11.1
查看当前使用的python版本
pyenv versions
安装某个版本的python
- 前置依赖包安装(已centos为例):
-
yum install -y zlib zlib-dev sqlite-devel bzip2-devel libffi libffi-devel gcc gcc-c++ ncurses-devel readline-devel
yum swap openssl-devel openssl11-devel
- 安装固定版本的python
-
pyenv install 3.11.1
常见安装失败处理方法
ModuleNotFoundError: No module named 'ssl'错误
CPPFLAGS="$(pkg-config --cflags openssl11)" LDFLAGS="$(pkg-config --libs op
enssl11)" pyenv install -v
其他常见安装python失败场景
解决方案可以参考官方wiki:
取消局部设置的python版本
pyenv local --unset
pipenv
Pipenv是官方推荐的的python包管理工具,可以实现项目之间依赖的隔离。
安装pipenv
pip install pipenv
常用命令
pipenv install
该命令功能如下:
- 若项目目录中虚拟环境未创建且无Pipfile文件,将安装虚拟环境并创建Pipfile文件
- 若项目目录中虚拟环境未创建且有Pipfile文件,将根据Pipfile文件来安装相应python版本和依赖包
- 若项目目录中虚拟环境已创建且有Pipfile文件,将根据Pipfile文件来安装依赖包
安装python包
pipenv install xxx # 安装某个python包
# 例:pipenv install requests==
卸载python包
pipenv uninstall xxx
显示虚拟环境安装路径
pipenv --venv
作者:大雄
THE END