17611538698
webmaster@21cto.com

Python多版本及依赖包管理

编程语言 0 771 2023-06-03 11:29:19

图片

导读:本文主要讲述如何通过 pyenv 来管理不同版本的 python ,以及如何使用 Pipenv 在同一个python版本实现项目之间依赖包的隔离。

pyenv

Linux系统下安装

curl https://pyenv.run | bash

验证是否安装成功:

# pyenv -vpyenv 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 3.11.1

其他常见安装python失败场景

解决方案可以参考官方wiki:

https://github.com/pyenv/pyenv/wiki/Common-build-problems

取消局部设置的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==2.13.0

卸载python包

pipenv uninstall xxx

显示虚拟环境安装路径

pipenv --venv

评论