pipenv 是Kenneth Reitz大神的作品。Kenneth Reitz是requests的作者。
pipenv结合了 Pipfile,pip,和virtualenv,能够有效管理Python多个环境,各种包。
Pipfile是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
过去我们一般用virtualenv搭建虚拟环境,管理python版本,但是跨平台的使用不太一致,且有时候处理包之间的依赖总存在问题;
过去也常常用 pip进行包的管理,pip已经足够好,但是仍然推荐pipenv,相当于virtualenv和pip的合体,且更加强大。
virtualenv可以保证为不同的项目创建独立的虚拟环境。
每个项目都有自己的虚拟环境,当项目需要移植到别的服务器或者让别的开发者使用时,由于我们的环境中安装了很多的依赖包,别人使用时,我们需要告诉他我们的环境中都有哪些包。所以,python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号。以便新环境部署。
requirements.txt可以通过pip命令自动生成和安装
virtualenv的使用没有任何问题。但是requirement.txt在涉及到项目的移植和跨平台时会导致一些不一致的问题,且有时候处理包之间的依赖总存在问题,并且requirement.txt是手动维护的。
1. 安装pipenv
我的ubuntu中有python2和pip2,以及pyhthon3和pip3,默认解释器应该是python2
我想将pipenv安装在python3环境下,所以,我用下面的命令
或者
2. 初始化语言环境
事先创建一个项目文件夹test2,进入该文件夹中
pipenv --three 会使用当前系统的Python3创建虚拟环境
pipenv --two 会使用当前系统的Python2创建虚拟环境
3 初始化项目环境
4 进入编辑环境
5 退出shell环境
6. 给该虚拟环境安装包的两个方式:
(1) 直接在当前目录test2下安装。
安装成功后,会在Pipfile中看到相应的信息
(2) 进入虚拟环境,在虚拟环境模式下安装:
这种方式安装的包,无法在Pipfile中记录追踪,所以,不要用这种方式安装包。
7. 删除虚拟环境
pipenv install 安装模块时有时候会很慢。可以设置国内源:
Pipfile
文件中[source]
下面url
属性,比如修改成:url = "https://pypi.tuna.tsinghua.edu.cn/simple"
可能出现的报错问题:
执行pipenv install 或者pipenv shell 时,提示如下错误信息:
解决方法:
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