python3 is unavailable when cross compiling OpenCV
まだ誰も着手していません。
評価
- 難易度
- 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 toolchain の設定を調べます。CMake の構成中に host と target の Python パスを比較します。Python 3 オプションが設定され、target の Python ライブラリの構成が正常に完了すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
- 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.
- 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.
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
- 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分
- マージ済み PR(30日)
- 3
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
opencv/opencv-python のほかの issue
-
[DOC] README file オープン
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
opencv/opencv-python#1217 · コメント 3 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
opencv/opencv-python#1165 · コメント 2 件 · リアクション 1 件 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
opencv/opencv-python#1273 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
opencv/opencv-python#1272 · コメント 1 件 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 70/100
opencv/opencv-python#1268 · コメント 1 件 ·
opencv/opencv-python の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
browser-use/browser-use#5905 ·
-
type: enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
ynput/ayon-python-api#363 ·
-
bug needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
modelscope/FunASR#3728 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
open-compass/opencompass#2655 ·