PythonNet на MacOS: получил SIGABRT при выполнении собственного кода - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь использовать .Net DLL из python, используя pythonnet

Я получаю следующую ошибку трассировки стека

* Assertion at sgen-alloc.c:379, condition `*p == NULL' not met


=================================================================
    Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

=================================================================
    Native stacktrace:
=================================================================
    0x109f079cd - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_dump_native_crash_info
    0x109eafd95 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_handle_native_crash
    0x109f070de - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : sigabrt_signal_handler
    0x7fff68cbcb1d - /usr/lib/system/libsystem_platform.dylib : _sigtramp
    0x0 - Unknown
    0x7fff68b92a08 - /usr/lib/system/libsystem_c.dylib : abort
    0x10a0bea9c - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : monoeg_g_printv
    0x10a0a5a1c - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_log_write_logfile
    0x10a0bed64 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : monoeg_g_logv_nofree
    0x10a0beebb - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : monoeg_assertion_message
    0x10a0671f0 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : sgen_alloc_obj
    0x10a06408c - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_gc_alloc_vector
    0x109ff4f78 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_array_new_specific_checked
    0x10a02899c - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_array_new_handle
    0x109f9c47d - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : ves_icall_System_Enum_GetEnumValuesAndNames
    0x109fa81ef - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : ves_icall_System_Enum_GetEnumValuesAndNames_raw
    0x10a582e64 - Unknown
    0x10a57ff4b - Unknown
    0x10a57fdbb - Unknown
    0x10a57fcf3 - Unknown
    0x10a57df93 - Unknown
    0x10a57ddd6 - Unknown
    0x109e2ad20 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_jit_runtime_invoke
    0x109ff0063 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : do_runtime_invoke
    0x109feff96 - /usr/local/opt/mono/lib/libmonosgen-2.0.1.dylib : mono_runtime_invoke
    0x109e1670e - /Users/afsan.abdulali.gujarati/anaconda3/lib/python3.7/site-packages/clr.cpython-37m-darwin.so : main_thread_handler
    0x109e16357 - /Users/afsan.abdulali.gujarati/anaconda3/lib/python3.7/site-packages/clr.cpython-37m-darwin.so : PyNet_Init
    0x109e169d6 - /Users/afsan.abdulali.gujarati/anaconda3/lib/python3.7/site-packages/clr.cpython-37m-darwin.so : PyInit_clr
    0x10989396d - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyImport_LoadDynamicModuleWithSpec
    0x109892d83 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _imp_create_dynamic
    0x109728233 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyMethodDef_RawFastCallDict
    0x1097298fd - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : PyCFunction_Call
    0x109863cd7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x10985749e - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalCodeWithName
    0x109728fe3 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyFunction_FastCallKeywords
    0x109865dc7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : call_function
    0x109863aec - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x1097288d5 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : function_code_fastcall
    0x109865dc7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : call_function
    0x109863a56 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x1097288d5 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : function_code_fastcall
    0x109865dc7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : call_function
    0x109863b27 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x1097288d5 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : function_code_fastcall
    0x109865dc7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : call_function
    0x109863b27 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x1097288d5 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : function_code_fastcall
    0x109865dc7 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : call_function
    0x109863b27 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x1097288d5 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : function_code_fastcall
    0x10972af58 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : object_vacall
    0x10972b163 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyObject_CallMethodIdObjArgs
    0x10988c54f - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : PyImport_ImportModuleLevelObject
    0x109861962 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalFrameDefault
    0x10985749e - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : _PyEval_EvalCodeWithName
    0x1098ba9a0 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : PyRun_FileExFlags
    0x1098b9e17 - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : PyRun_SimpleFileExFlags
    0x1098e7d3f - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : pymain_main
    0x1096fb66d - /Users/afsan.abdulali.gujarati/anaconda3/bin/python : main
    0x7fff68abb405 - /usr/lib/system/libdyld.dylib : start

=================================================================
    Telemetry Dumper:
=================================================================
Pkilling 0x70000c8e8000 from 0x10c97ed40
Entering thread summarizer pause from 0x10c97ed40
Finished thread summarizer pause from 0x10c97ed40.

Waiting for dumping threads to resume

=================================================================
    External Debugger Dump:
=================================================================
(lldb) command source -s 0 '/tmp/mono-gdb-commands.5933'
Executing commands in '/tmp/mono-gdb-commands.5933'.
(lldb) process attach --pid 5933

Что я пробовал до сих пор:

  • Установка Mono для Mac с помощью brew install mono
  • Установка Mono для Anaconda с помощью conda install -c conda-forge mono
  • Установка .Net Core SDK и Runtime для MacOS

Я не смог найти ничего конкретного, касающегося такого рода ошибок, при попытке import clr на MacOS. Кроме того, я не совсем уверен, как я должен интерпретировать трассировку стека в этом сценарии.

1 Ответ

0 голосов
/ 25 октября 2019

Я смог запустить его при запуске приведенного выше кода в виртуальной среде

Вы можете создать и запустить виртуальную среду следующим образом перед установкой pythonnet

>> virtualenv dotnetenv
>> source dotnetenv/bin/activate 
>> pip install pythonnet 
>> python script_importing_clr.py

Убедитесь, чточтобы установить ранее упомянутые библиотеки в вопросе, прежде чем делать это, и, честно говоря, я не уверен, почему это не работает вне виртуальной среды. Если вы делаете, пожалуйста, добавьте.

...