Pipenv 是基于pip的Python包管理工具,它和pip的用法非常相似,可以看作pip的加强版,它的出现解决了旧的pip+virtualenv+requirements.txt 的工作方式的弊端。具体来说它是pip、Pipfile和Virtualenv的结合体。它让包安装、包依赖管理和虚拟环境管理更加方便,使用它可以实现高效的Python项目开发工作流。
pip install pipenv
在python中虚拟环境就是隔离的Python解释器环境。通过创建虚拟机你可以拥有一个独立的Python解释器。这样就可以为每个项目都创建独立的解释器环境了,不会相互干扰,不会因为不同项目中的环境包依赖不相同而出现问题。它可以保证全局Python解释器的干净。
首先确保我们当前工作目录在示例程序项目的根目录,然后使用 pipenv install
命令为当前项目创建虚拟环境。
这个命令会为当前项目创建一个隔离的Python解释器环境,并且会安装 pip、wheel、setuptools等基本包。
通常情况下Pipenv会统一管理所有的虚拟环境。在Windows系统中,虚拟环境文件夹会在 C:\Users\Administrator\.virtualenvs\
目录下被创建。而在Linux或者MacOS会在~/.local/share/virtualenvs/
目录下创建。
如果你想在项目目录内创建虚拟环境文件夹,可以设置环境变量PIPENV_VENV_IN_PROJECT
,这时名为.venv
的虚拟环境文件夹将在项目根目录被创建。
虚拟环境文件夹的目录名称形式为 当前项目名 + 一串随机字符
,例如:python_project-c-DFCnJO
在Pipenv中,可以使用pipenv shell
命令显示地激活虚拟环境:
pipenv shell
当执行pipenv shell
或pipenv run
命令时,Pipenv会自动从项目目录下的.env
文件中加载环境变量。
当出现(python_project-c-DFCnJO) E:\python_project>
的标识时说明虚拟环境被激活,现在可以在虚拟环境执行需要的命令了。
当你需要退出虚拟环境时,可以使用exit
命令
除了显示地激活虚拟环境之外,Pipenv还提供了一个 pipenv run
命令,这个命令允许你可以不显示的激活虚拟环境即可在当前项目的虚拟环境中执行命令,如下:
pipenv run python hello.py
一个程序通常会有多个Python包,即依赖。一般的项目中我们会使用pip搭配一个requirements.txt文件来记录依赖,但是这个文件需要人为手动去维护,在使用上面不够灵活。Pipfile的出现就是为了替代难于管理的requirements.txt
文件。
pipenv install 命令会在项目文件夹根目录创建Pipfile和Pipfile.lock 文件,前者用来记录项目依赖包列表,后者记录了固定版本的详细依赖包列表。当我们使用PIpenv命令安装、删除、更新依赖包时,Pipfile以及Pipfile.lock会自动更新。