文章目录
一、python用pip批量安装包
pip freeze 为什么比 pip list 的包少几个呢?
二、[推荐]使用pipreqs 写入requirements.txt
三、利用requirements.txt离线安装依赖包
1. 使用 pip wheel 实现 Python 依赖包的离线安装
2. 下载命令
四、pip install 工作常见报错
Python.h: No such file or directory报错
一、python用pip批量安装包
python查看安装的第三方扩展包,就是使用命令 pip freeze。
在已经配置好的一台机器上,将需要的包导出到requirements.txt
./pip freeze > requirements.txt
此种方式会将环境中所有的包都打包进去,适合单虚拟环境(每个项目都处在不同的虚拟环境里,这个环境里是这个项目所需要的所有包)。因此,如果不是Python虚拟环境Virtualenv。我们不推荐这么使用,推荐使用 使用pipreqs 写入requirements.txt。
pip安装包的方式中,有如下一种安装方式:
pip install -r requirements.txt
而文件requirement.txt里面内容的格式和pip freeze的格式完全一样。因此我们可以将pip freeze的内容输出至requirements.txt。
推荐如下使用方式
./pip freeze | tee requirements.txt # 输出本地包环境至文件
./pip install -r requirements.txt # 根据文件进行包安装
pip freeze 为什么比 pip list 的包少几个呢?
因为pip , wheel , setuptools 等包,是自带的而无法(un)install的。考虑到pip freeze的用途,所以这些包并没有显示。
ps:
如果一定要用pip freeze来显示所有包,可以加上参数-all,即pip freeze -all
二、[推荐]使用pipreqs 写入requirements.txt
使用pipreqs 写入requirements.txt,只是程序中所用到的包,并不是电脑中安装的所有的包。
pip install pipreqs
cd 到程序所在的文件夹位置
执行下面的语句,Windows下得加encoding=utf8,不然会出现编码问题。
pipreqs ./ --encoding=utf8
三、利用requirements.txt离线安装依赖包
下载离线的包到指定目录
将requirements.txt中导入的包离线下载到 package_tmp_dir 文件夹
pip wheel -w package_tmp_dir -r requirements.txt
pip download -d package_tmp_dir -r requirements.txt
安装离线的包
pip install --no-index --find-links=package_tmp_dir -r requirements.txt
- 使用 pip wheel 实现 Python 依赖包的离线安装
Wheel 也是一种 built 包,而且是官方推荐的打包方式。也许你曾经遇见或使用过 egg 包,但现在 wheel 是官方推荐的打包方式(https://wheel.readthedocs.io/en/stable/)。
wheel 包的优点:
1.更快地安装纯 Python 和本机 C 扩展包。
2.避免安装时执行任意代码。 (避免 setup.py)
3.在 Windows 或 macOS 上安装 C 扩展不需要编译器。
4.为测试和持续集成提供更好的缓存。
5.创建 .pyc 文件作为安装的一部分,以确保它们与使用的 Python 解释器匹配。
6.跨平台和机器的更一致的安装。
没有网络连接, 借助 wheel把整个 Python 应用做成离线安装包。
安装 wheel:
pip install wheel
下载依赖包的 wheel 文件
pip wheel -r requirements.txt
默认情况下, 上述命令会下载 requirements.txt 中每个包的 wheel 包到当前目录的 wheelhouse 文件夹, 包括依赖的依赖。
在你的安装脚本中执行:
pip install --use-wheel --no-index --find-links=wheelhouse -r requirements.txt
- 下载命令
一、对于单个包的安装
1、离线
(1)pip离线下载
pip download 你的包名 -d “下载的路径(windows下双引号来表示文件夹)”
pip download pymysql -d "D:\pipDownloadTest"
(2)pip 离线安装
pip install 包路径
pip install PyMySQL-0.9.3-py2.py3-none-any.whl
2、在线
pip install pymysql
二、对于多个包的安装与下载
1、离线
离线下载
pip download -d packages -r requirements.txt
离线安装
pip install --no-index --find-links=packages -r requirements.txt
2、在线
pip install -r requirements.txt
总结:多个包下载就多了一个 -r requirements.txt。
四、pip install 工作常见报错
Python.h: No such file or directory报错
centos7 pip3 安装psycopg2出错
参考URL: https://www.jianshu.com/p/fbbe3bdf1905
原因是:
As mentioned in psycopg documentation http://initd.org/psycopg/docs/install.html
C compiler
Python header files
没有安装python的环境:
For apt (Ubuntu, Debian…):
sudo apt-get install python-dev # for python2.x installs
sudo apt-get install python3-dev # for python3.x installs
For yum (CentOS, RHEL…):sudo yum install python-devel # for python2.x installs
sudo yum install python3-devel # for python3.x installs