国内pip源及pip命令
更换PIP源
PIP源在国外,速度慢,可以更换为国内源,以下是国内一些常用的PIP源。
- 豆瓣(douban) http://pypi.douban.com/simple/ (推荐)
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
临时更换源,加上-i参数即可,如下:
pip install ×××× -i https://mirrors.aliyun.com/pypi/simple
常用 pip 命令
普通安装
pip install ××××
定版本安装
# 安装特定版本的package,通过使用==, >=, <=, >, <来指定一个版本号。 pip install ‘pythonModuleName<2.0’ pip install 'pythonModuleName>2.0,<2.0.3
卸载已安装的库
pip uninstall pythonModuleName
列出已经安装的库
pip list
将已经安装的库列表保存到文本文件中
pip freeze > requirements.txt
根据依赖文件批量安装库
pip install -r requirements.txt
使用wheel文件安装
除了使用上面的方式联网进行安装外,还可以将安装包也就是 wheel 格式的文件,下载到本地,然后使用 pip 进行安装。比如在 PYPI上 提前下载的 pillow 库的 wheel 文件,后缀名为whl。
pip install pillow-4.2xxxxxxx.whl
升级安装包
pip install --upgrade pkg
总结 pip 相关命令
管理/控制整个 python 环境的包版本
pip freeze >requirements.txt # 导出依赖包列表 pip install -r requirements.txt # 从依赖包列表中安装 pip install -c constraints.txt # 确保当前环境软件包的版本(并不确保安装)
查询软件包
pip list # 查询当前环境安装的所有软件包 pip search pkg # 查询 pypi 上含有某名字的包 pip list --outdated # 查询当前环境中可升级的包 pip show pkg # 查询一个包的详细内容
下载软件包
# 在不安装软件包的情况下下载软件包到本地,软件包从requirements.txt中读取 pip download --destination-directory /local/wheels -r requirements.txt
# 安装本地已下载的包,不联网,软件包从requirements.txt中读取 pip install --no-index --find-links=/local/wheels -r requirements.txt # 构建生成 wheel 文件 # 需要先pip install wheel pip wheel --wheel-dir=/local/wheels -r requirements.txt
安装软件包
1. 普通安装
pip install requests pip install --no-index --find-links=/local/wheels pkg # 只从本地安装,而不从 pypi 安装,前提是保证已经下载 pkg 包到 /local/wheels 目录下
2. 限定版本安装
# 限定版本进行安装 pip install pkg==2.1.2 # 所安装的包的版本为 2.1.2 pip install pkg>=2.1.2 # 所安装的包必须大于等于 2.1.2 pip install pkg<=2.1.2 # 所安装的包必须小于等于 2.1.2
3. 限制不使用二进制包安装
由于默认情况下,wheel 包的平台是运行 pip download 命令 的平台,所以可能出现平台不适配的情况。比如在 MacOS 系统下得到的 pymongo-2.8-cp27-none-macosx_10_10_intel.whl 就不能在 linux_x86_64 安装。
使用下面这条命令下载的是 tar.gz 的包,可以直接使用 pip install 安装。相对于 wheel 包,这种包在安装时会进行编译,所以花费的时间会长一些。
$ pip download --no-binary=:all: pkg # 下载非二进制的包 $ pip install pkg --no-binary # 安装非二进制的包
4. 指定代理服务器安装
当身处在一个内网环境中时,无法直接连接公网。这时候使用 pip install
安装包,就会失败。
面对这种情况,可以有两种方法:
- 下载离线包拷贝到内网机器中安装,虽说可行,但有相当多的弊端:步骤繁杂、耗时耗力、无法处理包的依赖问题
- 使用代理服务器转发请求
pip install --proxy [user:passwd@]http_server_ip:port pkg
每次安装包就发输入长长的参数,未免有些麻烦,可以将其写入配置文件中:
$HOME/.config/pip/pip.conf
,不同的操作系统,路径各不相同,下面列举了各操作系统的路径/etc/pip.conf ~/.pip/pip.conf ~/.config/pip/pip.conf
~/Library/Application Support/pip/pip.conf ~/.pip/pip.conf /Library/Application Support/pip/pip.conf
%APPDATA%\pip\pip.ini %HOME%\pip\pip.ini C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP) C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后)
[global] index-url = http://mirrors.aliyun.com/pypi/simple/ # 替换出自己的代理地址,格式为[user:passwd@]proxy.server:port proxy=http://xxx.xxx.xxx.xxx:8080 [install] # 信任阿里云的镜像源,否则会有警告 trusted-host=mirrors.aliyun.com
5. 安装用户私有软件包
python 的安装包是可以用户隔离的。
如果拥有管理员权限,可以将包安装在全局环境中。在全局环境中的这个包可被该机器上的所有拥有管理员权限的用户使用。
如果一台机器上的使用者不只一样,自私地将在全局环境中安装或者升级某个包,是不负责任且危险的做法。面对这种情况,有两种方法:
- 使用虚拟环境
- 将包安装在用户的环境中
pip install --user pkg # 只要加上 --user 参数,pip 就会将其安装在当前用户的 ~/.local/lib/python3.x/site-packages 下,而其他用户的 python 则不会受影响。
合作开发工具
pipreqs
https://www.cnblogs.com/zhuminghui/p/8386985.html
参考:https://blog.csdn.net/hz18790581821/article/details/89227380