在matlab引擎中运行start_matlab时出现分段错误

时间:2018-04-27 10:11:52

标签: python anaconda matlab-engine

我正在使用

  • Mac OSX High Sierra
  • anaconda3 python(python = 3.6的虚拟环境)
  • Matlab R2018a。

重现的步骤:

  1. 创建一个新的python 3.6环境。激活环境
  2. 转到Matlab / extern / engines / python并运行python setup.py install
  3. 运行以下脚本。
  4. import matlab.engine
    matlab.engine.start_matlab()
    

    分段错误发生在start_matlab()行(不是导入行)。 在使用matlab引擎之前我没有遇到任何麻烦。我怎么调试这个? (主要是关联问题)。

    ======================

    我卸载了Anaconda3,并使用了Python 2.7系统。我遇到了同样的问题,问题出在Matlab的libwmvm.dylib上。

        Process:               Python [5124]
    Path:                  /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
    Identifier:            Python
    Version:               2.7.10 (2.7.10)
    Code Type:             X86-64 (Native)
    Parent Process:        bash [2183]
    Responsible:           Python [5124]
    User ID:               501
    
    PlugIn Path:             /Applications/MATLAB_R2018a.app/bin/maci64/libmwmvm.dylib
    PlugIn Identifier:       libmwmvm.dylib
    PlugIn Version:          ??? (0)
    
    Date/Time:             2018-04-27 23:27:03.250 +0700
    OS Version:            Mac OS X 10.13.4 (17E199)
    Report Version:        12
    Anonymous UUID:        885790DC-B32C-0363-903C-837A7C285AF3
    
    Sleep/Wake UUID:       14FBD560-D2B9-4A59-89F1-DABA878FCA70
    
    Time Awake Since Boot: 10000 seconds
    Time Since Wake:       3700 seconds
    
    System Integrity Protection: enabled
    
    Crashed Thread:        3
    
    Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000090
    Exception Note:        EXC_CORPSE_NOTIFY
    
    Termination Signal:    Segmentation fault: 11
    Termination Reason:    Namespace SIGNAL, Code 0xb
    Terminating Process:   exc handler [0]
    
    VM Regions Near 0x90:
    --> 
        __TEXT                 000000010e1c6000-000000010e1c8000 [    8K] r-x/rwx SM=COW  p [/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python]
    
    Thread 0:: Dispatch queue: com.apple.main-thread
    

1 个答案:

答案 0 :(得分:1)

python 3.6不支持Matlab引擎,您可以使用python 3.5.

我也有anaconda,python 2.7、3.5和3.6。 您可以通过将python.exe重命名为python35.exe来轻松区分它们。比您可以这样称呼您py srcipt:

python35 example.py

它将使用python35进行调用。

提示: 重命名后pip install和conda install将不起作用,因为它正在搜索python.exe,因此您不必在大多数情况下重命名anaconda和python版本。