将32位Python 3.8的依赖库下载到内网环境使用,通常可以通过以下几种方法实现:
方法一:使用pip download
你可以先在一个能够访问互联网的机器上使用 pip download
命令来下载所需的包及其所有依赖。例如,如果你知道你需要的库是 requests
,那么你可以这样做:
pip download requests -d D:/MyPython/py32/package --platform win32 --python-version 38 --only-binary=:all:
这会下载适用于Windows 32位、Python 3.8版本的requests
库和它的所有二进制依赖项到指定目录中。
之后,你可以将这些文件复制到内网环境中,并使用 pip install
来安装它们:
pip install --no-index --find-links=D:/MyPython/py32/package requests
方法二:创建离线环境
-
在联网环境下:使用虚拟环境工具(如
venv
或virtualenv
)创建一个虚拟环境并安装所有需要的包。 -
打包虚拟环境:然后可以使用工具如
virtualenv-clone
或者手动复制整个虚拟环境目录到内网环境。 -
在内网环境中:解压或者复制虚拟环境到目标位置,并确保激活脚本正确配置了Python解释器路径。
方法三:使用pipreqs
生成需求文件
- 在联网环境中开发你的项目,并确保所有需要的库都已安装。
- 使用
pipreqs
生成项目的requirements.txt
文件,它会根据项目中的导入语句自动生成必要的依赖列表。 - 使用
pip download
命令结合requirements.txt
下载所有依赖:pip download -r requirements.txt -d /path/to/download/directory --platform win32 --python-version 38 --only-binary=:all:
- 将下载好的文件转移到内网环境中,并按照上面提到的方法进行安装。
我个人常用该方法,具体讲讲:
1. 创建依赖包requirements.txt
首先,在一个能够访问互联网的机器上创建一个新的虚拟环境,并激活它。然后安装所需的包并生成requirements.txt文件:
python -m venv myenv
source myenv/bin/activate # Windows: myenv\Scripts\activate
pip install httpx lxml pillow pytesseract pandas
pip freeze > requirements.txt
其实到这里你也可以把你创建的虚拟环境直接打包带走使用。
确保你的 requirements.txt
文件中只包含PyPI上的包名,而不包含任何本地路径或Conda特定的包。例如:
httpx==0.23.0
lxml==4.9.2
Pillow==9.4.0
pytesseract==0.3.10
pandas==1.5.3
2. 清理pip缓存
有时pip缓存可能导致问题。你可以尝试清理pip的缓存并重试命令:
pip cache purge
3. 下载命令
pip download -r requirements.txt -d D:/MyPython/py32 --platform win32 --python-version 38 --only-binary :all: --no-cache-dir
4. 手动排除问题包
如果上述步骤仍然无法解决问题,可以尝试手动下载那些导致问题的包(如argon2-cffi
),并将它们直接放入目标目录中。之后再尝试下载其他依赖项。
5. 使用 --no-deps
选项(作为最后的选择)
如果你确定所有需要的依赖项都已经存在或者不需要额外的依赖项,可以尝试加上--no-deps
选项来避免解析依赖关系:
pip download -r requirements.txt -d D:/MyPython/py32/package --platform win32 --python-version 38 --only-binary :all: --no-cache-dir --no-deps
不过,这通常不是理想的解决方案,因为它可能会遗漏一些必要的依赖库。