pip下载嵌入式平台的离线包并安装

时间:2024-10-12 15:30:00

嵌入式平台需要下载python的包,但是网络受限,无法下载包,此时该如何处理:
比如我当前需要安装riscv平台上的 opencv-contrib-python 包,但是嵌入式平台网速太慢,下载失败,如何通过服务器下载所需的包并且正常安装?

大致分为三步:

  1. 查看嵌入式平台的平台信息
  2. 去有网络的服务器上下载对应嵌入式平台的离线包
  3. 将离线包拷贝到嵌入式设备 ,并进行安装

1. 查看所需要安装的离线平台信息

以下命令运行在嵌入式设备上:

** 查看python版本 ** 
	$ python3 --version
			Python 3.10.12
** 平台信息 **
	$ uname -m
		riscv64
	$ arch
		riscv64

2. 在服务器上下载离线包

$ pip download opencv-contrib-python --only-binary=:all: --platform linux_riscv64  --python-version 3.10.12        
	ERROR: Could not find a version that satisfies the requirement opencv-contrib-python (from versions: none)
	ERROR: No matching distribution found for opencv-contrib-python

说明官方没有预编译该平台的opencv包,需要通过源码编译。

pip download opencv-contrib-python==4.10.0.84 --no-binary :all:


$ pip download opencv-contrib-python  --platform linux_riscv64  --python-version 3.10.12        

参数说明:
	<opencv-contrib-python>:需要下载的Python包名称。
	--only-binary=:all::只下载二进制包(即whl文件)。
	--wheel:确保下载的是wheel格式的包。 有的版本会报错,去掉该选项即可。
	--platform <platform_tag>:指定目标平台标签,例如 manylinux1_x86_64、win_amd64、macosx_10_9_x86_64 等。
	--python-version <python_version>:指定Python版本,例如 3.7。

3. 安装离线包

python -m pip install --no-index --find-links . <package_name>
	--no-index:禁止pip查询在线索引。
	--find-links .:告诉pip在当前目录下查找whl文件进行安装。

确保所有依赖项也一同下载并在同一目录下,以确保安装顺利进行。如果存在复杂的依赖关系,可能需要先分析好依赖顺序再依次安装。
如果是源码包,安装命令如下:

pip install /path/to/opencv_contrib_python-4.10.0.84.tar.gz