pipenv使用场景
一般的我们使用pip安装python,但是pip有一些局限性,比如下面的场景
场景一:
项目A和项目B,同时使用一个包,但是项目A需要使用包的1.0版本,项目B需要使用包的2.0版本场景二:
项目A在开发阶段需要使用到单元测试模块,所以用到一些做测试的包,但是项目上线不需要这些包。
而pipenv
就很好的解决了上述场景中包的管理。
pipenv安装
安装说明文档中的说明进行安装:
使用pip安装pipenv
pip install --user pipenv
pipenv环境变量的设置

首先我们需要确定系统中安装的python的位置,如果系统同时装了python2和python3,运行如下命令,否则运行python -m site
即可
python3 -m site

找到USER_BASE
后边的地址,将这个地址配置到环境变量中,因为我的是mac系统,所以运行如下命令:
vi ~/.bash_profile# 加入如下内容PYTHON3_HOME=USER_BASE的路径PATH=$PYTHON3_HOME/bin:$PATHexport PATH# 配置完成后执行source ~/.bash_profile
pipenv使用
首先我们需要建立一个项目文件夹,就是项目A的文件夹,我这里假设项目名称是pipenv_project
:
mkdir pipenv_projectcd pipenv_project
初始化语言环境,以下命令视自身情况选择
如果执行
pipenv
出现not find command
则检查自己的环境变量是否配置正确,也有可能是没有执行source
命令
# 初始化一个 python3 的环境pipenv --three# 初始化一个 python2 的环境(不过都已经 2018 年了,你还要用 2 吗)pipenv --two#初始化特定版本的环境pipenv --python 3.6# pypy 也是可以的pipenv --python pypy3
初始化项目环境
pipenv install
进入编辑环境
pipenv shell
如果要退出sell
环境,输入exit
即可
安装 / 更新 / 卸载依赖
# 安装requests依赖pipenv install requests# 卸载requests依赖pipenv uninstall requests# 安装指定版本的包,安装时加--dev表示加入到 dev 环境pipenv install parsel==1.3.1# 更新指定个包pipenv update requests# 更新所有的包pipenv update
依赖安装成功入下图,如果出现

有时候,安装会出现:The read operation timed out
错误,是网络问题,造成安装超时了,那就需要多执行几遍命令。
查看项目中安装的依赖
pipenv graph
锁定版本
pipenv lock
运行.py文件
vi demo.py# 加入如下内容import requestsresponse = requests.get('https://httpbin.org/ip')print('Your IP is {0}'.format(response.json()['origin']))# 运行demo.pypipenv run python3 demo.py
环境变量管理
如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。
例如写一个.env文件
echo "FOO=23333" > .env
之后pipenv shell
进入虚拟环境,echo $FOO
就能看环境变量的值23333已经设置好了。
其他
我的mac os的虚拟项目目录在:
/Users/用户/.local/share/virtualenvs
在这个文件夹下回找到一个以项目命名的文件夹,里面就是我们安装的依赖了。