gpt4 book ai didi

python - MATLAB 引擎和 Imatest IT 的导入冲突

转载 作者:行者123 更新时间:2023-12-01 09:07:30 36 4
gpt4 key购买 nike

我正在使用 Imatest IT (v5.0.1),并且需要将 Imatest IT 测试与我的 Python 代码结合使用,但是,我的 Python 代码还与 MATLAB (2017b) Python API 接口(interface),并且似乎存在冲突。

您可以在下面看到,在导入 matlab.engine 后尝试导入 ImatestLibrary 会导致异常。只需导入其中之一就不会出现问题。

import matlab.engine
from imatest.it import ImatestLibrary

Exception caught during initialization of Python interface. Details: DLL load failed: The specified procedure could not
be found.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python34\lib\site-packages\imatest\it.py", line 6, in <module>
import imatest.library
File "C:\Python34\lib\site-packages\imatest\library\__init__.py", line 279, in <module>
_pir.import_cppext()
File "C:\Python34\lib\site-packages\imatest\library\__init__.py", line 272, in import_cppext
self.cppext_handle = importlib.import_module("matlabruntimeforpython" + self.interpreter_version)
File "C:\Python34\lib\importlib\__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified procedure could not be found.

有办法解决这个问题吗?

最佳答案

根据the documentation of the Imatest Python interface关于导入 imatest.it:

Behind the scenes, the ImatestLibrary constructor will start up the Matlab MCR Runtime and load all the IT libraries into memory.

这表明 imatest 本身会干扰 MATLAB 引擎的状态。虽然导入的顺序通常并不重要,但有时某些导入应该在其他导入之前发生,以便正确初始化,当稍后导入的模块依赖于较早导入的模块时(例如,首先导入 matplotlib 并在之前设置后端导入将使用所述后端的pyplot)。

所以我唯一的建议是尝试切换导入顺序,看看是否有帮助。如果不是,那么你就不走运了(就 Stack Overflow 而言):MATLAB 和 Imatest 都是昂贵的专有(甚至闭源)产品,因此你应该向其中一个或两个提交错误报告,因为没有人else 将能够判断是否以及如何解决冲突。

关于python - MATLAB 引擎和 Imatest IT 的导入冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51929303/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com