你能检查一下pipenv吗?pipenv 对依赖项使用 Pipfile 和 Pipfile.lock 而不是 requirements.txt。它在您安装的依赖项和依赖项的依赖项之间有明确的分离。
检查下面的这个样本会更清楚:
╰─ pipenv graph ─╯
boto3==1.20.38
- botocore [required: >=1.23.38,<1.24.0, installed: 1.23.38]
- jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
- python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.2]
- six [required: >=1.5, installed: 1.16.0]
- urllib3 [required: >=1.25.4,<1.27, installed: 1.26.8]
- jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
- s3transfer [required: >=0.5.0,<0.6.0, installed: 0.5.0]
- botocore [required: >=1.12.36,<2.0a.0, installed: 1.23.38]
- jmespath [required: >=0.7.1,<1.0.0, installed: 0.10.0]
- python-dateutil [required: >=2.1,<3.0.0, installed: 2.8.2]
- six [required: >=1.5, installed: 1.16.0]
- urllib3 [required: >=1.25.4,<1.27, installed: 1.26.8]
colorama==0.4.4
pylint==2.12.2
- astroid [required: >=2.9.0,<2.10, installed: 2.9.3]
- lazy-object-proxy [required: >=1.4.0, installed: 1.7.1]
- setuptools [required: >=20.0, installed: 58.1.0]
- typing-extensions [required: >=3.10, installed: 4.0.1]
- wrapt [required: >=1.11,<1.14, installed: 1.13.3]
- isort [required: >=4.2.5,<6, installed: 5.10.1]
- mccabe [required: >=0.6,<0.7, installed: 0.6.1]
- platformdirs [required: >=2.2.0, installed: 2.4.1]
- toml [required: >=0.9.2, installed: 0.10.2]
- typing-extensions [required: >=3.10.0, installed: 4.0.1]
pytest-cov==3.0.0
- coverage [required: >=5.2.1, installed: 6.0.2]
- pytest [required: >=4.6, installed: 6.2.5]
- attrs [required: >=19.2.0, installed: 21.2.0]
- iniconfig [required: Any, installed: 1.1.1]
- packaging [required: Any, installed: 21.0]
- pyparsing [required: >=2.0.2, installed: 2.4.7]
- pluggy [required: >=0.12,<2.0, installed: 1.0.0]
- py [required: >=1.8.2, installed: 1.10.0]
- toml [required: Any, installed: 0.10.2]
PyYAML==6.0
requests==2.27.1
- certifi [required: >=2017.4.17, installed: 2021.10.8]
- charset-normalizer [required: ~=2.0.0, installed: 2.0.10]
- idna [required: >=2.5,<4, installed: 3.3]
- urllib3 [required: >=1.21.1,<1.27, installed: 1.26.8]
tomli==1.2.1
它还支持这样的 dev 和 prod 包定义:
╰─ cat Pipfile ─╯
[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
colorama = "*"
boto3 = "*"
pyyaml = "*"
requests = "*"
pylint = "*"
[dev-packages]
pytest = "*"
pytest-cov = "*"
[requires]
python_version = "3.9"
有关更多详细信息,请查看此链接:
https ://realpython.com/pipenv-guide/
还要检查 pipenv 中的多个环境:
Pipenv: Multiple Environments