Python--pip
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
Python 3.4+ 以上版本都自带 pip 工具。
一、pip 常用命令
显示版本和路径
pip --version
获取帮助
pip --help
升级 pip
pip install -U pip
如果这个升级命令出现问题 ,可以使用以下命令:
sudo easy_install --upgrade pip
安装包
pip install SomePackage # 最新版本 pip install SomePackage==1.0.4 # 指定版本 pip install 'SomePackage>=1.0.4' # 最小版本
升级包
pip install --upgrade SomePackage
卸载包
pip uninstall SomePackage
搜索包
pip search SomePackage
显示安装包信息
pip show
列出已安装的包
pip list
若由于一些局域网的原因,使用 pip 出现 “connection timeout”,连接超时可以使用国内的镜像网站下载
国内常用的pip源如下:
阿里云 http://mirrors.aliyun.com/pypi/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
使用方法
需要在后面加上-i参数然后指定镜像,并且要添加信任(--trusted-host 源地址)
例如:
pip install paramiko -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
二、Pipfile 与 Pipfile.lock
Pipfile 与 Pipfile.lock 是社区拟定的依赖管理文件,用于替代过于简陋的 requirements.txt 文件。
- Pipfile 文件是 TOML 格式而不是 requirements.txt 这样的纯文本。
- 一个项目对应一个 Pipfile,支持开发环境与正式环境区分。默认提供 default 和 development 区分。
- 提供版本锁支持,存为 Pipfile.lock。
示例:
[[source]]
url = 'https://pypi.python.org/simple'
verify_ssl = true
[requires]
python_version = '2.7'
[packages]
requests = { extras = ['socks'] }
Django = '>1.10'
pinax = { git = 'git://github.com/pinax/pinax.git', ref = '1.4', editable = true }
[dev-packages]
nose = '*'
pip 提供了 -p/--pipfile 参数用于安装 Pipfile,类似 -r/--requirement 会默认寻找 requirements.txt 文件,如果没有指定 -p 的参数将会自动寻找 Pipfile 文件。
例如:
pip install -p # 没有参数会自动寻找 Pipfile 文件 pip install -p Pipfile.lock # 根据 Pipfile.lock 安装指定依赖
需要注意的是,pip install -p 安装时会自动生成或更新 Pipfile.lock 文件。
Pipfile.lock 是根据 Pipfile 和当前环境自动生成的 JSON 格式的依赖文件,任何情况下都不要手动修改该文件!
生成命令:pip freeze -p Pipfile。
三、pipenv
pipenv 有机的结合了 Pipfile 、pip 和 virtualenv。
主要特性
- 根据 Pipfile 自动寻找项目根目录。
- 如果不存在,可以自动生成 Pipfile 和 Pipfile.lock。
- 自动在项目目录的 .venv 目录创建虚拟环境。(暂时需要设置 export PIPENV_VENV_IN_PROJECT=1)
- 自动管理 Pipfile 新安装和删除的包。
- 自动更新 pip。