欢迎访问我的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

pipenv使用

首先我们需要建立一个项目文件夹,就是项目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

在这个文件夹下回找到一个以项目命名的文件夹,里面就是我们安装的依赖了。