python - pipenv 使用概览
欢迎访问我的blog:http://www.qnloft.com/blog
pipenv 是 python的 包 / 虚拟环境管理工具。有点类似Java中maven。
GitHub地址:https://github.com/pypa/pipenv
文档地址:https://docs.pipenv.org
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:$PATH
export PATH
# 配置完成后执行
source ~/.bash_profile
首先我们需要建立一个项目文件夹,就是项目A的文件夹,我这里假设项目名称是pipenv_project
:
mkdir pipenv_project
cd 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 requests
response = requests.get('https://httpbin.org/ip')
print('Your IP is {0}'.format(response.json()['origin']))
# 运行demo.py
pipenv run python3 demo.py
环境变量管理
如果你开发调试时需要配一堆环境变量,可以写到.env文件中,在pipenv shell进入虚拟环境时,它会帮你把这些环境变量加载好,非常方便。
例如写一个.env文件
echo "FOO=23333" > .env
之后pipenv shell
进入虚拟环境,echo $FOO
就能看环境变量的值23333已经设置好了。
我的mac os的虚拟项目目录在:
/Users/用户/.local/share/virtualenvs
在这个文件夹下回找到一个以项目命名的文件夹,里面就是我们安装的依赖了。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341