在一些企业环境中,由于安全原因,服务器可能无法访问外网。这可能会给安装 Python 包带来挑战,因为大多数包都是通过互联网从 PyPI 下载的。但是,有几种方法可以在离线环境中安装 Python 包。
方法一:使用 pip
下载本地依赖包,并在离线环境中安装
步骤1:导出依赖
首先,需要在一个可以访问外网的环境中筛选出项目所需的 Python 包。这可以通过安装 pipreqs
来实现:
pip install pipreqs
cd 你的项目根目录/
pipreqs ./ --encoding=utf-8
运行以上命令后,将在项目根目录下生成一个 requirements.txt
文件,其中包含了项目所需的所有依赖项。
步骤2:离线下载依赖包
然后,根据 requirements.txt
文件导出所需的安装包:
pip download -d PIPDIR -r requirements.txt
其中:
-d
指定导出的文件夹。-r
指定根据哪个文件导出。--trusted-host
表示信任主机。
步骤3:在新环境中安装依赖
将包含下载的包的 PIPDIR
文件夹和 requirements.txt
文件移动到新的离线环境中,然后使用以下命令安装依赖:
pip install --no-index --find-links=PIPDIR -r requirements.txt
这里的 --find-links
指定了包的存放目录,-r
指定了依赖列表文件。
方法二:使用 pypi-server
创建私有 pip
源
这种方法适合独立的小项目,并需要一个可以访问外网的计算机作为服务器。
安装和配置 pypiserver
首先,在能访问外网的服务器上安装 pypiserver
:
pip install pypiserver
创建一个用于存储安装包的文件夹,并下载所需的包:
mkdir /home/packages
cd /home/packages && pip download numpy
启动 pypi-server
:
# 不添加参数默认使用 8080 端口和 packages 文件夹
pypi-server
# 或者指定端口和文件夹
pypi-server -p 9090 /home/packages
使用私有 pip
源安装包
在无法连接外网的内网计算机上,通过私有 pip
源安装包。假设服务器的 IP 地址为 127.0.0.1
:
pip install numpy -i {服务地址} --trusted-host 127.0.0.1
这样,即使在没有外网连接的环境中,也能成功安装 Python 包。