【问题标题】:Is it possible to run the Python Camelot library on Windows Server Core?是否可以在 Windows Server Core 上运行 Python Camelot 库?
【发布时间】:2020-08-15 19:18:06
【问题描述】:

我在 Python 脚本中使用 Camelot,我们使用 pyinstaller 将其打包为可执行文件。

这适用于:Windows 10 桌面、Windows Server,甚至在使用 mcr.microsoft.com/windows:1909 的 Docker 容器中。

我们正在尝试仅使用 Windows Server Core 2019 (mcr.microsoft.com/windows/servercore:ltsc2019) 使其在 Docker 容器中工作,但我们遇到了可怕的缺少 DLL 问题,这似乎影响了 OpenCV 的某些用途.

\pyimod03_importers.py",第 627 行,在 exec_module 中 文件“lib\site-packages\cv2__init__.py”,第 9 行,在 ImportError: DLL load failed: 找不到指定的模块。

我认为这是因为 Windows Media Feature Pack 不是服务器核心的一部分,我不认为它可以作为附加选项使用。

我们的问题是:是否可以在 Windows Server Core(加上一些其他组件)上运行此脚本,或者我们是否需要运行基于完整 Windows 安装的映像?

【问题讨论】:

    标签: python docker opencv server-core


    【解决方案1】:

    我在 Windows 核心上运行 ffmpeg 时遇到了同样的问题。它说 mfplat.dll 丢失。该文件是媒体功能包的一部分,Windows 核心安装不提供该文件。

    我刚刚从 Windows Server 2019 完整版中提取了该文件,并将其放在 ffmpeg.exe 附近。它解决了问题。

    我想,你可以走同样的路。首先确定所需的 dll 文件,然后从完整版本中复制。

    【讨论】:

    • 谢谢安德烈,我会试一试的。部分挑战将是准确找到需要哪些 DLL,以及是否将它们放在路径上而不注册它们是否可以工作。很好,你的工作正常!