Не удалось импортировать opencv в контейнер Windows (в Windows Server 2016)
Я запускаю следующий контейнер для тестирования моей среды opencv-python на Windows Server 2016.
docker run -i --rm python:2.7-windowsservercore
(python:2.7-windowsservercore
изображение является официальным изображением Python, основанным на microsoft/windowsservercore
)
и в интерактивной консоли я установил opencv-python:
pip install opencv-python
после этого я тестирую пакет opencv-python:
python -c "import cv2"
но я получил следующую ошибку:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "C:\Python\lib\site-packages\cv2\__init__.py", line 9, in <module>
from .cv2 import *
ImportError: DLL load failed: The specified module could not be found.
затем я установил python-2.7.13 на хост (не внутри контейнера), ввел те же команды установки pip и протестировал python -c "import cv2"
опять же, он не сообщит ни об одной ошибке. Интересно, если в контейнере отсутствуют какие-либо DLL-файлы? Какой пакет или программное обеспечение я должен установить в контейнере, чтобы исправить эту ошибку?
1 ответ
Основываясь на принятом ответе на этот вопрос, я бы положил деньги на вас, у которых нет необходимого времени выполнения MSVC. Предполагая, что он был скомпилирован с Visual Studio 2015, среду выполнения можно загрузить из распространяемого пакета Visual C++ для Visual Studio 2015
Я нашел решение в этом месте.
Скопируйте следующие файлы с вашего хоста в папку \System32 вашего контейнера:
- msacm32.dll
- avifil32.dll
- avicap32.dll
- msvfw32.dll