如何使用pipenv

当然,使用 pipenv 来管理和组织 Python 项目的依赖是一个非常好的选择。pipenv 结合了 pipvirtualenv 的功能,提供了一个更简单和一致的方式来管理项目的虚拟环境和依赖包。以下是一个详细的教程,帮助你从零开始使用 pipenv

1. 安装 Pipenv

首先,你需要确保已经安装了 pipenv。你可以在大多数操作系统上使用 pip 来安装它。

使用 pip 安装 Pipenv

1
pip install pipenv

验证安装

安装完成后,可以通过以下命令验证 pipenv 是否安装成功:

1
pipenv --version

你应该会看到类似如下的输出:

1
pipenv, version 2022.1.8

2. 创建一个新的项目

假设你想要创建一个新的 Python 项目,并使用 pipenv 来管理其依赖。

1. 创建项目目录

1
2
mkdir my_project
cd my_project

2. 初始化 Pipenv

在项目目录中运行以下命令来初始化 pipenv,这会创建一个新的虚拟环境并生成 Pipfile

1
pipenv install

如果你还没有安装任何包,Pipfile 将会创建但不会包含具体的依赖项。

3. 生成 Pipfile.lock

虽然 Pipfile 已经创建,但你可能希望生成 Pipfile.lock,这样可以锁定依赖的版本。

1
pipenv lock

生成的文件结构如下:

1
2
3
my_project/
├── Pipfile
└── Pipfile.lock

4. 安装依赖包

假设你需要安装一些常用的库,比如 requestspandas

1
pipenv install requests pandas

这将会自动安装这些包,并在 Pipfile 中记录依赖项,在 Pipfile.lock 中锁定这些版本。

5. 查看已安装的依赖

你可以查看当前安装的依赖包及其版本。

1
pipenv graph

这将会以树状图的形式显示依赖关系。

3. 激活虚拟环境

1. 手动激活

在需要运行项目或进行开发时,可以手动激活虚拟环境。

  • Windows:

    1
    pipenv shell
  • macOS/Linux:

    1
    pipenv shell

激活后,终端提示会显示虚拟环境的名称,表示你已经在该虚拟环境中。

2. 自动激活

有些编辑器和 IDE 可以自动激活 pipenv 的虚拟环境。例如,如果你使用 VSCode,安装 Python 扩展 后,VSCode 会自动识别并激活 pipenv 环境。

3. 运行脚本

你也可以在不激活虚拟环境的情况下直接运行脚本。

1
pipenv run python my_script.py

4. 管理依赖

1. 添加依赖

添加新的依赖包非常简单。

1
pipenv install <package_name>

例如:

1
pipenv install numpy

2. 添加开发依赖

某些依赖包仅用于开发而不用于生产环境,比如测试框架。你可以使用 --dev 标志来安装这些依赖。

1
pipenv install <package_name> --dev

例如:

1
pipenv install pytest --dev

3. 移除依赖

移除不必要的依赖包也很容易。

1
pipenv uninstall <package_name>

例如:

1
pipenv uninstall numpy

4. 更新依赖

你可以使用以下命令来更新所有依赖包到最新的版本。

1
pipenv update

或者更新单个包:

1
pipenv update <package_name>

例如:

1
pipenv update requests

5. 锁定依赖

确保依赖版本的一致性非常重要。你可以使用 lock 命令来锁定当前环境的依赖版本。

1
pipenv lock

5. 使用虚拟环境

1. 列出已安装的包

查看当前虚拟环境中已安装的所有包及其版本。

1
pipenv graph

2. 导出依赖

你可以将 pipenv 中的依赖导出为 requirements.txt 格式,以便与其他工具兼容。

1
pipenv lock -r > requirements.txt

3. 删除虚拟环境

如果你需要删除当前项目的虚拟环境,可以使用以下命令:

1
pipenv --rm

之后,你可以重新运行 pipenv install 来重新创建虚拟环境和安装依赖。

6. 共享和协作

当你完成项目的开发并希望与他人共享或部署时,确保将 PipfilePipfile.lock 包含在你的版本控制系统(如 Git)中。

1. 初始化 Git 仓库

1
git init

2. 添加文件到 Git

1
2
git add Pipfile Pipfile.lock
git commit -m "Add project dependencies"

3. 共享仓库

将仓库推送到远程(如 GitHub、GitLab 等),以便其他人可以克隆并设置相同的环境。

1
2
git remote add origin <repository_url>
git push -u origin master

4. 其他开发者的设置

其他开发者克隆仓库后,只需运行以下命令即可安装所有依赖并设置虚拟环境。

1
2
3
git clone <repository_url>
cd my_project
pipenv install

7. 高级用法

1. 指定 Python 版本

你可以在创建虚拟环境时指定特定的 Python 版本。例如,使用 Python 3.9:

1
pipenv --python 3.9

2. 使用 pipfile 管理不同环境

Pipfile 允许你为不同的环境指定不同的依赖。你可以在 Pipfile 中定义多个环境,例如开发环境和生产环境。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
requests = "*"
pandas = "*"

[dev-packages]
pytest = "*"
coverage = "*"

[requires]
python_version = "3.9"

然后你可以通过以下命令安装开发依赖:

1
pipenv install --dev

3. 使用 shell 运行命令

除了激活虚拟环境,你还可以直接在虚拟环境中运行命令。

1
pipenv shell python my_script.py

4. 检查安全漏洞

pipenv 提供了一个安全审计功能,可以帮助你检查依赖中的已知安全漏洞。

1
pipenv check

5. 使用 graph 查看依赖关系

pipenv graph 可以显示所有依赖包及其版本的树状结构,有助于你理解项目的依赖关系。

1
pipenv graph

总结

通过以上步骤,你应该能够熟练地使用 pipenv 来管理和组织 Python 项目的依赖。pipenv 的简洁和易用性使得项目中的依赖管理变得更加轻松和高效。如果你有任何问题或需要进一步的帮助,请随时提问!

以下是一些额外的资源,供你参考:

希望这些信息对你有所帮助!