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.