Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

python3 is unavailable when cross compiling OpenCV

未关闭
#1,128 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
android, cmake, python

调研方向

从提供的 CMake 调用开始,重点检查 PYTHON3_* 设置,并检查 /home/ad/Android/Sdk/ndk/27.2.12479018/build/cmake/android.toolchain.cmake 中的 Android 工具链配置。在 CMake 配置期间比较 host 和 target 的 Python 路径;当 Python 3 选项已填充且 target Python 库配置成功完成时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

  1. Environment and Target

Build environment: Ubuntu 22.04
Target environment: aarch64-Linux-Android
OpenCV:4.10
I have cross compiled Python 3.11 and it can run on Android arm-v8a. I want to cross compile OpenCV to generate a Python library that supports the target environment.

  1. Building
    This is my cmake script:
export PYTHON_HOST=/home/ad/host-dev/x86_python311
export PYTHON_TARGET=/home/ad/dev-lib/python311
cmake \
 -DCMAKE_TOOLCHAIN_FILE=/home/ad/Android/Sdk/ndk/27.2.12479018/build/cmake/android.toolchain.cmake \
 -DCMAKE_BUILD_TYPE=Release \
 -DANDROID_ABI:STRING=arm64-v8a \
 -DANDROID_PLATFORM:STRING=android-30 \
 -DCMAKE_INSTALL_PREFIX:PATH=/home/ad/dev-lib/opencv/myinstall \
 -DBUILD_SHARED_LIBS:BOOL=ON \
 -DANDROID_STL=c++_shared \
 -DBUILD_opencv_python2:BOOL=OFF \
 -DBUILD_opencv_python3:BOOL=ON \
 -DPYTHON3_EXECUTABLE:FILEPATH=${PYTHON_HOST}/bin/python3.11 \
 -DPYTHON3_INCLUDE_DIR:PATH=${PYTHON_TARGET}/include/python3.11 \
 -DPYTHON3_LIBRARY:FILEPATH=${PYTHON_TARGET}/lib/libpython3.11.so.1.0 \
 -DOPENCV_PYTHON3_INSTALL_PATH:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages \
 -DPYTHON3_PACKAGES_PATH:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages \
 -DPYTHON3_NUMPY_INCLUDE_DIRS:PATH=${PYTHON_TARGET}/lib/python3.11/site-packages/numpy/_core/include \
 -S ./ -B ./mybuild

After executing the cmake command,python3 is unavailable, the options related to Python 3 are empty, as shown in the following figure.

Image

Image

This is my env:

export ANDROID_NDK_HOME=/home/ad/Android/Sdk/ndk/27.2.12479018
export ANDROID_HOME=/home/ad/Android/Sdk
export ANDROID_SDK_PLANTFORM_TOOLS=/home/ad/Android/Sdk/platform-tools
export MESON_PATH="/home/ad/.local/bin"
export CMAKE_ANDROID_NDK="/home/ad/Android/Sdk/cmake/4.0.2" 
export PYTHON3_BIN=/home/ad/host-dev/x86_python311
export LD_LIBRARY_PATH=/home/ad/dev-lib/python311/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ad/host-dev/x86_python311/lib/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/ad/host-dev/x86_python311/lib/python3.11/site-packages/numpy/_core:$LD_LIBRARY_PATH
export PATH=$ANDROID_NDK_HOME:$ANDROID_HOME:$ANDROID_SDK_PLANTFORM_TOOLS:$CMAKE_ANDROID_NDK:$PYTHON3_BIN:$PATH
  1. Question
    (1)Is there a fight for the setting of PYTHON3_deECUTABLE, PYTHON3-INCLUDE-DIR, and PYTHON3_LIBRRY? Which parameter is the Python of the host machine? Which is the Python parameter for the target platform?
    (2)How should I modify cmake or environment variable parameters?
主要语言
Python
星标
5.4k
派生
1k
平均合并
22 小时 17 分钟
30 天内合并 PR
3

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

opencv/opencv-python 的其他 Issue

查看 opencv/opencv-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。