ImportError: нет модуля с именем cv2. Но выполнение команды apt-get показывает, что python-opencv уже установлен

#python #opencv #importerror

#python #opencv #importerror

Вопрос:

Несмотря на то, что я опробовал решения, приведенные для вопросов того же типа, касающихся той же ошибки, ничего не сработало. Когда я пытаюсь запустить скрипт, он выдает эту ошибку импорта. Но удивительно, когда я пытаюсь

apt-get install python-opencv

Я получаю это сообщение:

python-opencv уже является самой новой версией.

Это то, что меня озадачивает. Если он установлен, почему его нельзя импортировать? Заранее спасибо.

Комментарии:

1. Очень странно, я попытался импортировать cv2 в Xubuntu 16.04 после установки python-opencv, и он работает нормально. Не могли бы вы предоставить более подробную информацию о среде, в которой вы ее запускаете. Используете ли вы virtualenv?

2. @Nurzhan. Нет. Я не использовал virtualenv. Кстати, я использую debian 8.

3. Используете ли вы python3.x ?

4. @3kt. No. Его 2.7

5. @user5103877 Вы установили libopencv-dev?

Ответ №1:

Скорее всего, библиотека python-opencv не установлена в каталоге по умолчанию. Вот почему ваш интерпретатор не может его найти.

При работе с проектами на python рекомендуется использовать virtualenv. Это позволит вам создавать отдельные среды python и не портить их. Затем установите pip и используйте его для установки пакетов python, а не apt-get install внутри вашей виртуальной среды.

В вашем случае вам нужно запустить:

 sudo dpkg-query -L python-opencv
  

Он выведет каталоги, в которые была установлена библиотека python-opencv. И добавьте этот путь к PYTHONPATH в ваш файл .bashrc (скорее всего, это .bashrc в Debian):

 PYTHONPATH="${PYTHONPATH}:/path/to/the/python/libraries"
export PYTHONPATH
  

Затем запустите . .bashrc в своей домашней папке.

Но это не рекомендуется делать. Как я уже сказал, более чистый способ — использовать virtualenv и pip . В этом случае вам не нужно путаться с PYTHONPATH.

Комментарии:

1. Я сделал то, что вы сказали, и получил следующую ошибку: Трассировка (последний последний вызов): … Ошибка импорта: нет модуля с именем _sysconfigdata_nd

2. @user5103877 Лучше удалить то, что вы уже установили. Прочитайте руководства о том, как настроить virtualenv в debian, установите pip и используйте его для установки пакетов вместо apt-get . Это решит вашу проблему.

3. Я полагаю, что у меня есть как virtualenv, так и pip. @Нуржан. Есть и другая проблема. Мое соединение Wi-Fi постоянно падает и не может быть исправлено до сих пор. (это следующий вопрос, который я скоро опубликую, потому что ни один из ответов на похожие проблемы не сработал). Поэтому удаление сейчас не очень хорошая идея.

4. @user Убедитесь, что у вас действительно есть virtualenv и pip и что вы знаете, как их использовать.