Python pipenv 虚拟环境和pip包管理工具

pipenv 是虚拟环境和依赖管理工具,相当于 virtualenvpip 的合体,能解决安装第三方库时所需要解决的库依赖和版本控制问题

环境

操作系统 Windows 10
编译器 VScode
python 3.8.6

python版本不建议使用最新稳定版,因为有些包可能还未跟进

安装pipenv

VSCode 终端输入:

1
pip3 install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple

1

然后将上图中的安装路径(黄色部分)添加到 环境变量

1
C:\Users\雨园\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\Scripts

使用流程

创建虚拟环境

创建一个名为 project 文件夹并用vscode打开它

在vscode终端激活虚拟环境

1
pipenv shell

2

若没有虚拟环境则自动创建一个以项目名称 project 开头的虚拟环境

修改国内源

此时 project 目录下会自动生成 Pipfile文件,为了加速下载库,将该文件 url = 后面的网址修改为 https://pypi.tuna.tsinghua.edu.cn/simple

1
2
3
4
5
6
7
8
9
10
11
[[source]]
name = "pypi"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
verify_ssl = true

[dev-packages]

[packages]

[requires]
python_version = "3.8"

python_version = "3.8" 表明使用电脑上安装的python3.8版本

最后重启VS Code(新版本不需要重启了),选择创建的虚拟环境

3

创建的虚拟环境在用户目录下的 .virtualenvs 目录

安装第三方库

安装requests(在 project 目录下):

1
pipenv install requests

此时 project 目录下有了 PipfilePipfile.lock 两个文件

project 目录下创建一个py文件

1
2
3
4
5
6
7
8
import requests

# 把Response对象赋值给res
res = requests.get('https://localprod.pandateacher.com/python-manuscript/crawler-html/sanguo.md')

print(res.status_code) # 查看状态码
novel = res.text
print(novel) # 打印结果

项目迁移

项目迁移到其它设备上,如果项目有 PipfilePipfile.lock 两个文件,就在项目目录下执行 pipenv install 命令,然后它会自动创建虚拟环境并安装第三方库,所以根本没必要迁移虚拟环境。要注意的是新设备上的python版本要与文件一致

pipenv install 命令对 requirements.txt 文件也有效,如果没有 PipfilePipfile.lock 两个文件则会自动生成

其它命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pipenv install requests                # 安装第三方库requests
pipenv uninstall requests # 删除第三方库requests
pipenv uninstall --all # 卸载所有包
pipenv --rm # 删除虚拟环境
pipenv --where # 列出本地工程路径
pipenv --venv # 列出虚拟环境路径
pipenv --py # 列出虚拟环境的Python可执行文件
pipenv --python 3.8 # 指定python版本创建虚拟环境
pipenv shell # 激活虚拟环境
pipenv install # 创建虚拟环境
pipenv install [moduel] --dev # 安装包到开发环境
pipenv graph # 查看包依赖
pipenv lock # 生成lockfile
pipenv requirements > requirements.txt # 生成 requirements.txt

其它问题

pipenv 安装失败

报错无法加载文件xx

pipenv shell 激活环境出现报错:

1
pipenv : 无法将“pipenv”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

如果已经添加过环境变量,那么就重启电脑