GNU/Linux >> Linux の 問題 >  >> Linux

OpenCV と python/virtualenv?

cv2*.so をコピーするだけです ファイルを仮想環境の site-packages フォルダーにコピーします。例:

cp /usr/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so ~/your_virt_env_folder/YOUR_VIRT_ENV_NAME/lib/python3.6/site-packages/

プロジェクトで makefile を使用して、Python virtualenv 内に OpenCV をインストールします。以下はボイラープレートの例です。システム Python (/usr/bin/python) 用の OpenCV バインディングが既に存在している必要があります。 ) yum install opencv-python のようなものを使用して取得できます または apt-get install python-opencv .

最初のクエリ システムを Python の cv2 にする モジュールを呼び出し、インストールされたライブラリ ファイルの場所を取得します。次に cv2.so をコピーします virtualenv ディレクトリに移動します。

VENV_LIB = venv/lib/python2.7
VENV_CV2 = $(VENV_LIB)/cv2.so

# Find cv2 library for the global Python installation.
GLOBAL_CV2 := $(shell /usr/bin/python -c 'import cv2, inspect; print(inspect.getfile(cv2))')

# Link global cv2 library file inside the virtual environment.
$(VENV_CV2): $(GLOBAL_CV2) venv
    cp $(GLOBAL_CV2) [email protected]

venv: requirements.txt
    test -d venv || virtualenv venv
    . venv/bin/activate && pip install -r requirements.txt

test: $(VENV_CV2)
    . venv/bin/activate && python -c 'import cv2; print(cv2)'

clean:
    rm -rf venv

(上記のスニペットをコピーして Makefile に貼り付けることができますが、sed -i s:' ':'\t':g Makefile を実行して、インデントをタブ文字に置き換えてください。 など)

これでテンプレートを実行できます:

echo "numpy==1.9.1" > requirements.txt
make
make test

ここに記載されている問題を回避するために、シンボリック リンクの代わりに .so ファイルを実際にコピーすることに注意してください:https://stackoverflow.com/a/19138136/1510289


Virtualenv は別の python 環境を作成します。すべての依存関係を再インストールする必要があります。編集 pip は opencv でうまく動作しないようです。モジュールが見つからないというエラーは、cv 共有オブジェクトを virtualenv にコピーすることで解決できます。以下にリンクされている質問の詳細。


Linux
  1. ユーザーとグループを一覧表示する Python スクリプト

  2. 混合シェルと python スクリプトは可能ですか?

  3. tkinter と python をローカルにインストールする

  1. pip と pip3 - どちらも python3.5 を指していますか?

  2. bash から変数をエクスポートして Python で使用する

  3. いつ Bash を使用し、いつ Perl/Python/Ruby を使用するか?

  1. PythonとBashを使用したPodmanRESTfulAPIの調査

  2. Python2とPython3をFedora35にインストールする方法

  3. Ubuntu 20.04および18.04にPythonをインストールするにはどうすればよいですか?