pip 与 pipenv的使用
pip 是什么?
pip 是一个 Python 包也是 Python 推荐的包管理程序,可以用于安装和管理 Python 包,Python 2.7.9+ 版本中已经自带了 pip 包。针对 Python 2 和 3,pip 分别提供了 pip 和 pip3 两个命令
pip 常用命令
- 基本用法:
pip install SomePackage
,等效于python -m pip install SomePackage
- 明确指定版本号:
pip install SomePackage==1.0.0
- 制定最小版本号:
pip install SomePackage>=1.0.0
- 指定版本号区间:
pip install SomePackage>=1.0.0,<2.0.0
pipenv-Pipfile 与 Pipfile.lock
介绍
Pipfile 与 Pipfile.lock 是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件. 过去大家经常使用virtualenv来创建虚拟环境,通过pip freeze生成requirements.txt文件,然后通过pip install -r requirements.txt进行项目模块的管理与安装。这样的安装存在很多问题,比如每次更新模块后,需要手动的重新生成依赖文件,等等问题
pipenv安装
pip install pipenv
即可轻松完成安装,并且pycharm也支持pipenv
基本命令
pipenv --where
:寻找项目根目录。pipenv install
:安装 Pipfile 中所列的所有包。pipenv install --dev
:安装 Pipfile 中 dev 环境所列的所有包。pipenv uninstall
:卸载所有包。pipenv install pytest --dev
:在 dev 环境中安装 pytest 包。pipenv lock
:确认 Pipfile 中所有包已安装,并根据安装版本生成 Pipfile.lock。pipenv shell
:应用虚拟环境。pipenv install request
:安装request包并且更新到Pipfile。
基本理念
- Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本
- 一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分;
- 提供版本锁支持,存为 Pipfile.lock。
示例:
[[source]]
url = "https://mirrors.aliyun.com/pypi/simple"
verify_ssl = true
name = "pypi"
[[source]]
url = "https://readonlyuser:mimashishiliuwei@nexus.leyantech.com/repository/pypi-internal/simple"
verify_ssl = true
name = "nexus"
[dev-packages]
[packages]
django-auth-ldap = "==1.3.0"
django-cors-headers = "==2.5.2"
django-stubs = "==0.12.1"
djangorestframework = "==3.9.2"
djangorestframework-jwt = "==1.11.0"
djangorestframework-stubs = "==0.4.2"
[requires]
python_version = "3.7"