每次我尝试从MATLAB导入Python模块(使用py.importlib.import_module
)时,它都会崩溃。有时,崩溃是立即发生的,但有时崩溃会在崩溃之前挂起一段时间。某些模块似乎可以正常工作,例如py.importlib.import_module('math')
可以正常工作,但是py.importlib.import_module('random')
会导致崩溃。我也无法导入自定义模块。
这是pyversion
的输出:
>> pyversion
version: '3.7'
executable: '/home/garden/anaconda3/bin/python3'
library: '/home/garden/anaconda3/lib/libpython3.7m.so'
home: '/home/garden/anaconda3'
isloaded: 0
有什么办法解决这个问题吗?
我不确定这是否有帮助,但是我将其范围缩小到了导致崩溃的特定行,即hashlib模块中的第244行:
240 for __func_name in __always_supported:
241 # try them all, some may not work due to the OpenSSL
242 # version not supporting that algorithm.
243 try:
244 globals()[__func_name] = __get_hash(__func_name)
245 except ValueError:
246 import logging
247 logging.exception('code for hash %s was not found.', __func_name)
答案 0 :(得分:0)
在MathWorks的支持下,当Python尝试使用MathWorks版本的libcrypto
时,有时会出现此问题。这可以通过在尝试导入其他模块之前使用Python加载SSL
来解决。将这些行添加到我的MATLAB脚本的开头似乎可以解决此问题:
py.sys.setdlopenflags(int32(10))
py.importlib.import_module('ssl')