尝试导入Python模块时MATLAB在Linux上崩溃

时间:2019-07-01 14:09:44

标签: python linux matlab

每次我尝试从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)

1 个答案:

答案 0 :(得分:0)

在MathWorks的支持下,当Python尝试使用MathWorks版本的libcrypto时,有时会出现此问题。这可以通过在尝试导入其他模块之前使用Python加载SSL来解决。将这些行添加到我的MATLAB脚本的开头似乎可以解决此问题:

py.sys.setdlopenflags(int32(10))
py.importlib.import_module('ssl')