Python之Pipenv使用

工欲善其事,必先利其器.

        • 1. 安装
        • 2. 使用
          • 2.1 创建虚拟环境
          • 2.2 activate与deactivate
          • 2.3 安装包
        • 3. autoenv使用
          • 3.1 安装
          • 3.2 配置
        • 4. 常用命令

Pipenv: Python Development Workflow for Humans

1. 安装

pip install pipenv

2. 使用

2.1 创建虚拟环境

添加--python参数指定python版本号,前提条件是本地已经安装该版本的python.

pipenv --three/two
pipenv --python 2.7
pipenv --python 3.7

这会在项目目录中创建两个新文件:

Pipfile:该文件是TOML格式,存放当前虚拟环境的配置信息,包括python版本,pypi源以及依赖包等,pipenv根据该文件寻找项目的根目录。

Pipfile.lock:该文件是对Pipfile的锁定,支持锁定项目不同版本所依赖的环境。

2.2 activate与deactivate
# activate
pipenv shell
# deactivate
exit
2.3 安装包

pipenv支持开发环境和生产环境依赖的分离。

pipenv install有多重作用:

  1. 如果虚拟环境已经存在,则安装Pipfile中的依赖包;
  2. 如果虚拟环境不存在,但Pipfile存在,则根据Pipfile中python版本创建虚拟环境并安装依赖包;
  3. 如果虚拟环境和Pipfile都不存在,则根据系统默认python版本创建虚拟环境.
pipenv install 
# 安装开发环境依赖(如py.tests,mock等)
pipenv install --dev
# 指定包名
pipenv install [package_name]
# 如果项目已经存在requirements.txt
pipenv install -r requirements.txt

另外你也可以以下面格式的URL安装在git或其他版本控制系统中的包。

type>+:////@#

**vcs_type有效值:**git,bzr,svn,hg

**scheme有效值:**http,https,ssh,file

branch_or_tag:可选参数

强烈建议以编辑模式安装任何版本控制依赖,如下示例:

# 安装requests
pipenv install -e git+https://github.com/requests/requests.git@v2.19#egg=requests

3. autoenv使用

使用它可以在进入项目目录时自动激活项目所需的虚拟环境;对于多个项目目录的切换,它分别激活相对应的虚拟环境,提升了效率。

3.1 安装
pip install autoenv
3.2 配置

在项目根目录下创建.env文件,并写入:

pipenv shell

要实现 autoenv自动识别项目目录中的 .env文件,需要将autoenv的激活脚本添加到终端的 profile 中:

# bash
echo "source `which activate.sh`" >> ~/.bashrc
source ~/.bashrc
# zsh
echo "source `which activate.sh`" >> ~/.zshrc
source ~/.zshrc

4. 常用命令

pipenv

pipenv [OPTIONS] COMMAND [ARGS]...

Options:

  • –where

    输出项目根目录路径

    • –venv

    输出虚拟环境信息

    • –envs

    输出环境变量信息

    • –rm

    删除当前虚拟环境

    • –pypi-mirror

    指定PyPi的镜像

    • –site-packages

    为虚拟环境启用site-packages

check:检查包的anquanxing

clean:卸载未在Pipfile.lock中指定的所有软件包

graph:显示当前安装的依赖关系图信息

lock:生成Pipfile.lock文件

run:在未激活虚拟环境时可以直接使用虚拟环境的Python执行命令

sync:安装所有在Pipfile.lock中指定的软件包

uninstall:卸载指定的软件包并将其从Pipfile中删除

update:更新指定包

你可能感兴趣的:(Python)