[英]Matlab crashes when trying to call Python's execfile function
我试图从 Matlab 中调用一个简单的 Python 脚本,不幸的是 Matlab 崩溃了。 我在 Windows 10 上。我通过在 Matlab 的交互式命令窗口中调用py.execfile(filePathAndName)
来做到这一点。
我的 Matlab 当前指向 Anaconda 发行版,但如果我将其指向原始 CPython 发行版,它也会以相同的方式崩溃。
错误如下。
奇怪的是,如果我只是在 Matlab 中调用py.help('execfile')
这工作正常。
>> py.help('execfile')
Help on built-in function execfile in module __builtin__:
execfile(...)
execfile(filename[, globals[, locals]])
Read and execute a Python script from a file.
The globals and locals are dictionaries, defaulting to the current
globals and locals. If only globals is given, locals defaults to it.
这是我调用py.execfile(filePathAndName)
时的错误:
MATLAB crash file:C:\Users\Thunder\AppData\Local\Temp\matlab_crash_dump.1064-1:
------------------------------------------------------------------------
Access violation detected at Mon Feb 19 20:02:39 2018
------------------------------------------------------------------------
Configuration:
Crash Decoding : Disabled - No sandbox or build area path
Crash Mode : continue (default)
Current Graphics Driver: Unknown software
Default Encoding : windows-1252
Deployed : false
Graphics card 1 : Intel Corporation ( 0x8086 ) Intel(R) HD Graphics Version 9.17.10.4459 (2016-5-19)
Host Name : TimeMachine
MATLAB Architecture : win64
MATLAB Entitlement ID: 2781541
MATLAB Root : C:\Program Files\MATLAB\R2017b
MATLAB Version : 9.3.0.713579 (R2017b)
OpenGL : software
Operating System : Microsoft Windows 10 Education
Processor ID : x86 Family 6 Model 42 Stepping 7, GenuineIntel
Virtual Machine : Java 1.8.0_121-b13 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
Window System : Version 10.0 (Build 16299)
Fault Count: 1
Abnormal termination:
Access violation
Register State (from fault):
RAX = 00000000499221e0 RBX = 0000000000000000
RCX = 0000000000000000 RDX = 00000000499221e0
RSP = 00000000043fbb30 RBP = 0000000049397448
RSI = 0000000000000000 RDI = 00000000499221e0
R8 = fffffffffe7cc3e0 R9 = 000000004993a000
R10 = 0000000049397448 R11 = 00000000043fb890
R12 = 0000000046896ef0 R13 = 000000007d0023f4
R14 = 00000000043fbe18 R15 = 000000009dc00110
RIP = 0000000047f6354b EFL = 00010206
CS = 0033 FS = 0053 GS = 002b
Stack Trace (from fault):
[ 0] 0x0000000047f6354b C:\Users\Thunder\Anaconda2\python27.dll+00865611 PyDict_GetItem+00000011
[ 1] 0x0000000047fe6329 C:\Users\Thunder\Anaconda2\python27.dll+01401641 PyAST_FromNode+00034425
[ 2] 0x0000000047f8bd09 C:\Users\Thunder\Anaconda2\python27.dll+01031433 PyCFunction_Call+00000105
[ 3] 0x0000000047f44dd3 C:\Users\Thunder\Anaconda2\python27.dll+00740819 PyObject_Call+00000131
[ 4] 0x0000000047dc687f bin\win64\pycli.dll+00092287
[ 5] 0x0000000047dc28cb bin\win64\pycli.dll+00075979
[ 6] 0x0000000047decf6b bin\win64\pycli.dll+00249707
[ 7] 0x000000002d4c705d bin\win64\pgo\mcos_impl.dll+00553053
[ 8] 0x000000002d4c6848 bin\win64\pgo\mcos_impl.dll+00550984
[ 9] 0x000000002d49524d bin\win64\pgo\mcos_impl.dll+00348749
[ 10] 0x000000002d494b80 bin\win64\pgo\mcos_impl.dll+00347008
[ 11] 0x000000002d495de5 bin\win64\pgo\mcos_impl.dll+00351717
[ 12] 0x000000002d496f4e bin\win64\pgo\mcos_impl.dll+00356174
[ 13] 0x0000000011e58f74 bin\win64\pgo\m_dispatcher.dll+00036724 Mfh_MATLAB_fn::dispatch_fh+00000660
[ 14] 0x000000002d493ab0 bin\win64\pgo\mcos_impl.dll+00342704
[ 15] 0x0000000011e5a8d8 bin\win64\pgo\m_dispatcher.dll+00043224 Mfunction_handle::dispatch+00001032
[ 16] 0x000000001427794e bin\win64\pgo\m_lxe.dll+00227662
[ 17] 0x0000000014273747 bin\win64\pgo\m_lxe.dll+00210759
[ 18] 0x000000001427348a bin\win64\pgo\m_lxe.dll+00210058
[ 19] 0x000000001427339b bin\win64\pgo\m_lxe.dll+00209819
[ 20] 0x00000000142732fa bin\win64\pgo\m_lxe.dll+00209658
[ 21] 0x000000001427b3a6 bin\win64\pgo\m_lxe.dll+00242598
[ 22] 0x000000001427bfb3 bin\win64\pgo\m_lxe.dll+00245683
[ 23] 0x000000001427dff5 bin\win64\pgo\m_lxe.dll+00253941
[ 24] 0x000000001427d44f bin\win64\pgo\m_lxe.dll+00250959
[ 25] 0x000000001427d822 bin\win64\pgo\m_lxe.dll+00251938
[ 26] 0x000000001434331b bin\win64\pgo\m_lxe.dll+01061659 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00604503
[ 27] 0x000000001434ad46 bin\win64\pgo\m_lxe.dll+01092934 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00635778
[ 28] 0x000000001434a570 bin\win64\pgo\m_lxe.dll+01090928 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00633772
[ 29] 0x00000000142da4d6 bin\win64\pgo\m_lxe.dll+00632022 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00174866
[ 30] 0x00000000142d9ccd bin\win64\pgo\m_lxe.dll+00629965 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00172809
[ 31] 0x00000000142d9be6 bin\win64\pgo\m_lxe.dll+00629734 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00172578
[ 32] 0x00000000142d35a5 bin\win64\pgo\m_lxe.dll+00603557 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00146401
[ 33] 0x00000000142d3532 bin\win64\pgo\m_lxe.dll+00603442 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00146286
[ 34] 0x00000000142d71d5 bin\win64\pgo\m_lxe.dll+00618965 boost::serialization::singleton<boost::archive::detail::pointer_oserializer<boost::archive::binaryTerm_oarchive,MathWorks::lxe::MatlabIrTree> >::get_instance+00161809
[ 35] 0x0000000013795b63 bin\win64\pgo\m_interpreter.dll+00416611 inEvalCmdWithLocalReturn+00000063
[ 36] 0x00000000fb60de26 bin\win64\libmwbridge.dll+00122406 mnParser+00001254
[ 37] 0x0000000011d3bdb1 bin\win64\mcr.dll+00245169 mcr::runtime::setInterpreterThreadSingletonToCurrent+00029793
[ 38] 0x0000000011d3ace5 bin\win64\mcr.dll+00240869 mcr::runtime::setInterpreterThreadSingletonToCurrent+00025493
[ 39] 0x0000000011d3ad53 bin\win64\mcr.dll+00240979 mcr::runtime::setInterpreterThreadSingletonToCurrent+00025603
[ 40] 0x0000000011d3b6e1 bin\win64\mcr.dll+00243425 mcr::runtime::setInterpreterThreadSingletonToCurrent+00028049
[ 41] 0x00000000fd02cc77 bin\win64\iqm.dll+00642167 iqm::UserEvalPlugin::pre+00028951
[ 42] 0x00000000fd039cfc bin\win64\iqm.dll+00695548 iqm::UserEvalPlugin::pre+00082332
[ 43] 0x00000000fd02737f bin\win64\iqm.dll+00619391 iqm::UserEvalPlugin::pre+00006175
[ 44] 0x00000000fd02cc16 bin\win64\iqm.dll+00642070 iqm::UserEvalPlugin::pre+00028854
[ 45] 0x00000000fd027863 bin\win64\iqm.dll+00620643 iqm::UserEvalPlugin::pre+00007427
[ 46] 0x00000000fd03c8b6 bin\win64\iqm.dll+00706742 iqm::UserEvalPlugin::pre+00093526
[ 47] 0x00000000fd0080f7 bin\win64\iqm.dll+00491767 iqm::PackagedTaskPlugin::PackagedTaskPlugin+00000759
[ 48] 0x00000000fd0088bf bin\win64\iqm.dll+00493759 iqm::PackagedTaskPlugin::execute+00000879
[ 49] 0x00000000fd00817d bin\win64\iqm.dll+00491901 iqm::PackagedTaskPlugin::PackagedTaskPlugin+00000893
[ 50] 0x00000000fd008708 bin\win64\iqm.dll+00493320 iqm::PackagedTaskPlugin::execute+00000440
[ 51] 0x00000000fcfdbd3a bin\win64\iqm.dll+00310586 iqm::Iqm::setupIqmFcnPtrs+00079802
[ 52] 0x00000000fcfdbc06 bin\win64\iqm.dll+00310278 iqm::Iqm::setupIqmFcnPtrs+00079494
[ 53] 0x00000000fcfbf5be bin\win64\iqm.dll+00193982 iqm::Iqm::deliver+00004046
[ 54] 0x00000000fcfc0545 bin\win64\iqm.dll+00197957 iqm::Iqm::deliver+00008021
[ 55] 0x00000001001237c1 bin\win64\libmwservices.dll+01259457 services::system_events::PpeDispatchHook::dispatchOne+00021505
[ 56] 0x0000000100128663 bin\win64\libmwservices.dll+01279587 sysq::addProcessPendingEventsUnitTestHook+00002211
[ 57] 0x0000000100128850 bin\win64\libmwservices.dll+01280080 sysq::addProcessPendingEventsUnitTestHook+00002704
[ 58] 0x0000000100129c26 bin\win64\libmwservices.dll+01285158 sysq::getCondition+00003462
[ 59] 0x000000010012ac66 bin\win64\libmwservices.dll+01289318 svWS_ProcessPendingEvents+00000230
[ 60] 0x0000000011d3c244 bin\win64\mcr.dll+00246340 mcr::runtime::setInterpreterThreadSingletonToCurrent+00030964
[ 61] 0x0000000011d3c964 bin\win64\mcr.dll+00248164 mcr::runtime::setInterpreterThreadSingletonToCurrent+00032788
[ 62] 0x0000000011d32762 bin\win64\mcr.dll+00206690 mcr_process_events+00008818
[ 63] 0x0000000011c723c5 bin\win64\MVMLocal.dll+00271301 mvm_server::inproc::LocalFactory::terminate+00088005
[ 64] 0x00000000fa957669 bin\win64\mvm.dll+01209961 mvm::detail::initLocalMvmHack+00000569
[ 65] 0x00000000fa957e2b bin\win64\mvm.dll+01211947 mvm::detail::SessionImpl::privateSession+00000555
[ 66] 0x00000000fa958051 bin\win64\mvm.dll+01212497 mvm::detail::SessionImpl::privateSession+00001105
[ 67] 0x0000000140007833 bin\win64\MATLAB.exe+00030771
[ 68] 0x000000014000863f bin\win64\MATLAB.exe+00034367
[ 69] 0x00007ff998ed1fe4 C:\WINDOWS\System32\KERNEL32.DLL+00073700 BaseThreadInitThunk+00000020
[ 70] 0x00007ff99b9defc1 C:\WINDOWS\SYSTEM32\ntdll.dll+00454593 RtlUserThreadStart+00000033
If this problem is reproducible, please submit a Service Request via:
http://www.mathworks.com/support/contact_us/
A technical support engineer might contact you with further information.
Thank you for your help.
我遇到了同样的问题。 解决方案是提供一个工作空间参数。 正如 py.eval 所描述的那样: 调用 Python eval 函数。 例如,您可以尝试:
ws=py.dict;
py.execfile(filePathAndName,ws)
这应该运行没有错误或崩溃 MATLAB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.