pipenv介绍和简单使用

1 pipenv简介

pipenv Kenneth Reitz大神的作品。Kenneth Reitzrequests的作者。

pipenv结合了  Pipfilepip,和virtualenv,能够有效管理Python多个环境,各种包。

Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。

过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;

过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenvpip的合体,且更加强大。

2 virtualenv的缺点

virtualenv可以保证为不同的项目创建独立的虚拟环境。

每个项目都有自己的虚拟环境,当项目需要移植到别的服务器或者让别的开发者使用时,由于我们的环境中安装了很多的依赖包,别人使用时,我们需要告诉他我们的环境中都有哪些包。所以,python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。

requirements.txt可以通过pip命令自动生成和安装

pipenv介绍和简单使用_第1张图片

virtualenv的使用没有任何问题。但是requirement.txt在涉及到项目的移植和跨平台时会导致一些不一致的问题,且有时候处理包之间的依赖总存在问题,并且requirement.txt是手动维护的。

 

3 pipenv特性

  1. pipenv集成了pip,virtualenv两者的功能,且完善了两者的一些缺陷.
  2. 过去用virtualenv管理requirements.txt文件可能会有问题,Pipenv使用Pipfile和Pipfile.lock,后者存放将包的依赖关系,查看依赖关系是十分方便.
  3. 各个地方使用了哈希校验,无论安装还是卸载包都十分安全,且会自动公开安全漏洞
  4. 通过加载.env文件简化开发工作流程
  5. 支持Python2 和 Python3,在各个平台的命令都是一样的

 

1. 安装pipenv

我的ubuntu中有python2和pip2,以及pyhthon3和pip3,默认解释器应该是python2

我想将pipenv安装在python3环境下,所以,我用下面的命令

或者

2. 初始化语言环境

事先创建一个项目文件夹test2,进入该文件夹中

pipenv  --three 会使用当前系统的Python3创建虚拟环境

pipenv  --two 会使用当前系统的Python2创建虚拟环境

pipenv介绍和简单使用_第2张图片

3 初始化项目环境

pipenv介绍和简单使用_第3张图片

4 进入编辑环境

5 退出shell环境

6. 给该虚拟环境安装包的两个方式:

(1) 直接在当前目录test2下安装。

pipenv介绍和简单使用_第4张图片  

安装成功后,会在Pipfile中看到相应的信息

pipenv介绍和简单使用_第5张图片

(2) 进入虚拟环境,在虚拟环境模式下安装:

这种方式安装的包,无法在Pipfile中记录追踪,所以,不要用这种方式安装包。pipenv介绍和简单使用_第6张图片

7. 删除虚拟环境

 

pipenv介绍和简单使用_第7张图片

4 更新pipenv安装源

pipenv install 安装模块时有时候会很慢。可以设置国内源:

Pipfile文件中[source]下面url属性,比如修改成:url = "https://pypi.tuna.tsinghua.edu.cn/simple"

 

可能出现的报错问题:

执行pipenv install 或者pipenv shell 时,提示如下错误信息:
pipenv介绍和简单使用_第8张图片

解决方法:

1、先设置/etc/profile

通过编辑 /etc/profile来做系统级的设置

编辑 /etc/profile文件,追加图片中的两行

保存退出,执行 source /etc/profile

 2、再设置 ~/.bashrc

通过编辑 ~/.bashrc 来做系统级的设置

编辑~/.bashrc文件,追加图片中的两行

保存退出,执行 source ~/.bashrc

 

参考网址:

Pipenv – 超好用的 Python 包管理工具    https://segmentfault.com/a/1190000015389565

python - pipenv 使用概览    https://blog.51cto.com/1840558/2073283

Pipenv——最好用的python虚拟环境和包管理工具    https://cloud.tencent.com/developer/article/1328471

 

你可能感兴趣的:(pipenv,flask,python)