在机器学习、数据科学以及其他 Python 项目中,较为常见的需求是在没有网络连接的环境中安装 Python 包及其依赖。这种情况常发生在企业内部、实验室、保护性环境或特定硬件平台上。
虽然直接复制虚拟环境中的库文件看似简便,但这种方法存在以下潜在问题:
- 依赖问题:
不同虚拟环境之间的依赖版本可能不一致,直接复制可能会导致缺失某些依赖项或导入不兼容的版本,从而影响程序的正常运行。 - 路径问题:
虚拟环境中的库文件路径在目标环境中可能不同,直接复制可能导致依赖找不到,造成运行时错误。 - 文件完整性:
手动复制可能会遗漏某些必要文件(如 metadata),导致目标环境无法识别和使用这些库。
因此,在离线环境中,推荐使用 pip download 方法,以确保包的完整性和兼容性。
以下载并离线安装beautifulsoup4为例,操作步骤如下:
步骤 1:准备工作
更换国内pypi源
pip config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple
在有网络连接的计算机上创建存放包的目录:
mkdir beautifulsoup4
cd beautifulsoup4
使用 pip download 命令下载目标包
pip download:用于预先下载指定包及其所有依赖项到本地文件夹,而不安装它们,适用于有网络的环境,便于在离线环境中安装。
pip download beautifulsoup4
生成的文件夹内内包含其依赖项,如图:
将文件夹复制到目标计算机。
切换到 文件夹目录下,运行以下命令:
pip install --no-index --find-links=. beautifulsoup4
–no-index:不访问在线包索引,避免网络请求。
–find-links=.:指定当前目录查找已经下载的包。