GNU/Linux >> Belajar Linux >  >> Linux

OpenCV dan python/virtualenv?

Cukup salin cv2*.so file ke folder paket situs dari lingkungan virtual. Misalnya:

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/

Saya menggunakan makefile di proyek saya untuk menginstal OpenCV di dalam Python virtualenv. Di bawah ini adalah contoh boilerplate. Ini mengharuskan Anda sudah memiliki binding OpenCV untuk Python sistem Anda (/usr/bin/python ) yang bisa Anda dapatkan menggunakan sesuatu seperti yum install opencv-python atau apt-get install python-opencv .

Buat kueri pertama cv2 sistem Python modul dan mengambil lokasi file perpustakaan yang diinstal. Kemudian menyalin cv2.so ke dalam direktori 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

(Anda dapat menyalin-tempel cuplikan di atas ke dalam Makefile, tetapi pastikan untuk mengganti indentasi dengan karakter tab dengan menjalankan sed -i s:' ':'\t':g Makefile atau serupa.)

Sekarang Anda dapat menjalankan template:

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

Perhatikan bahwa alih-alih tautan simbolis, kami sebenarnya menyalin file .so untuk menghindari masalah yang disebutkan di sini:https://stackoverflow.com/a/19138136/1510289


Virtualenv membuat lingkungan python yang terpisah. Anda perlu menginstal ulang semua dependensi Anda. EDIT memang benar pip sepertinya tidak cocok dengan opencv. Kesalahan modul yang hilang dapat diatasi dengan menyalin objek bersama cv ke virtualenv Anda. Info lebih lanjut dalam pertanyaan yang ditautkan di bawah ini.


Linux
  1. Menjelajahi Podman RESTful API menggunakan Python dan Bash

  2. Cara:Python 3 dan Membuat Lingkungan Virtual (venv) di CentOS 7

  3. Dapatkan judul jendela saat ini dengan Python dan Xorg

  1. Pertanyaan virtualenv python

  2. Campuran skrip shell dan python mungkin?

  3. Kapan menggunakan Bash dan kapan menggunakan Perl/Python/Ruby?

  1. Cara Menginstal Python 2 dan Python 3 di Fedora 35

  2. Bagaimana Cara Menginstal Python di Ubuntu 20.04 dan 18.04?

  3. Skrip python untuk membuat daftar pengguna dan grup