Python 用pip批量安装包 (python查看安装的第三方扩展包)

百科知识2025-04-273

文章目录

一、python用pip批量安装包
pip freeze 为什么比 pip list 的包少几个呢?
二、[推荐]使用pipreqs 写入
三、利用离线安装依赖包

  1. 使用 pip wheel 实现 Python 依赖包的离线安装
  2. 下载命令
  3. pip download 和 pip wheel 这两个命令的区别

四、pip install 工作常见报错
: No such file or directory报错

一、python用pip批量安装包

python查看安装的第三方扩展包,就是使用命令 pip freeze。

在已经配置好的一台机器上,将需要的包导出到

./pip freeze >

此种方式会将环境中所有的包都打包进去,适合单虚拟环境(每个项目都处在不同的虚拟环境里,这个环境里是这个项目所需要的所有包)。因此,如果不是Python虚拟环境Virtualenv。我们不推荐这么使用,推荐使用 使用pipreqs 写入。

pip安装包的方式中,有如下一种安装方式:

pip install -r

而文件里面内容的格式和pip freeze的格式完全一样。因此我们可以将pip freeze的内容输出至。

推荐如下使用方式

./pip freeze | tee # 输出本地包环境至文件
./pip install -r # 根据文件进行包安装

pip freeze 为什么比 pip list 的包少几个呢?

因为pip , wheel , setuptools 等包,是自带的而无法(un)install的。考虑到pip freeze的用途,所以这些包并没有显示。

ps: 如果一定要用pip freeze来显示所有包,可以加上参数-all,即pip freeze -all

二、[推荐]使用pipreqs 写入

使用pipreqs 写入,只是程序中所用到的包,并不是电脑中安装的所有的包。

pip install pipreqs

cd 到程序所在的文件夹位置 执行下面的语句,Windows下得加encoding=utf8,不然会出现编码问题。

pipreqs ./ --encoding=utf8

三、利用离线安装依赖包

    下载离线的包到指定目录 将中导入的包离线下载到 package_tmp_dir 文件夹

pip wheel -w package_tmp_dir -r
pip download -d package_tmp_dir -r

    安装离线的包

pip install --no-index --find-links=package_tmp_dir -r

  1. 使用 pip wheel 实现 Python 依赖包的离线安装

    Wheel 也是一种 built 包,而且是官方推荐的打包方式。也许你曾经遇见或使用过 egg 包,但现在 wheel 是官方推荐的打包方式(/en/stable/)。 wheel 包的优点:     1.更快地安装纯 Python 和本机 C 扩展包。     2.避免安装时执行任意代码。 (避免 )     3.在 Windows 或 macOS 上安装 C 扩展不需要编译器。     4.为测试和持续集成提供更好的缓存。     5.创建 .pyc 文件作为安装的一部分,以确保它们与使用的 Python 解释器匹配。     6.跨平台和机器的更一致的安装。

    没有网络连接, 借助 wheel把整个 Python 应用做成离线安装包。

    安装 wheel:

    pip install wheel

下载依赖包的 wheel 文件

pip wheel -r

默认情况下, 上述命令会下载 中每个包的 wheel 包到当前目录的 wheelhouse 文件夹, 包括依赖的依赖。

在你的安装脚本中执行:

pip install --use-wheel --no-index --find-links=wheelhouse -r

  1. 下载命令

    一、对于单个包的安装 1、离线 (1)pip离线下载 pip download 你的包名 -d “下载的路径(windows下双引号来表示文件夹)”

    pip download pymysql -d "D:\pipDownloadTest"

(2)pip 离线安装 pip install 包路径

pip install PyMySQL-0.9.3-py2.

2、在线

pip install pymysql

二、对于多个包的安装与下载 1、离线 离线下载

pip download -d packages -r

离线安装

pip install --no-index --find-links=packages -r

2、在线

pip install -r

总结:多个包下载就多了一个 -r 。

  1. pip download 和 pip wheel 这两个命令的区别
      下载的文件格式不同

pip download 下载的是源代码的压缩包,通常是 . 格式
pip wheel 下载的是编译好的 wheel 二进制包,以 .whl 作为文件扩展名

    是否编译

pip download 仅仅下载源码,不会编译
pip wheel 会自动为所支持的平台编译Wheel包

    下载位置不同

pip download 会下载到当前目录
pip wheel 默认下载到 ~/.cache/pip/wheels 目录

    用途不同

pip download 用于获取源码包以便查看或自定义编译
pip wheel 常用于离线环境,下载好Wheel包后直接pip install使用 所以,简单来说:
需要源码包 - 使用pip download

需要离线安装 - 使用pip wheel 两者有不同的使用场景。

四、pip install 工作常见报错

: No such file or directory报错

centos7 pip3 安装psycopg2出错

参考URL: /p/fbbe3bdf1905 原因是:

As mentioned in psycopg documentation /psycopg/docs/

C compiler
Python header files

没有安装python的环境: For apt (Ubuntu, Debian…):

sudo apt-get install python-dev # for installs sudo apt-get install python3-dev # for installs For yum (CentOS, RHEL…):

sudo yum install python-devel # for installs sudo yum install python3-devel # for installs