anaconda - MacOS 上的 PythonNet:在执行本机代码时获得 SIGABRT
问题描述
我正在尝试使用来自 python 的 .Net DLLpythonnet
我收到以下堆栈跟踪错误
* 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
到目前为止我已经尝试过:
- 使用 Mac 安装单声道
brew install mono
- 使用为 anaconda 安装单声道
conda install -c conda-forge mono
- 安装 .Net Core SDK 和运行时
MacOS
import clr
在尝试on时,我找不到与此类错误相关的任何具体内容MacOS
。另外,我不确定在这种情况下我应该如何解释堆栈跟踪。
解决方案
在虚拟环境中运行上述代码时,我能够运行它
安装前可以如下创建并运行虚拟环境pythonnet
>> virtualenv dotnetenv
>> source dotnetenv/bin/activate
>> pip install pythonnet
>> python script_importing_clr.py
在执行此操作之前,请确保在问题中安装前面提到的库,老实说,我不确定为什么它不能在虚拟环境之外工作。如果有,请补充。
推荐阅读
- android - Xamarin Android 从片段实例获取视图
- r - 如何在R中的栅格数据中找到具有特定值的像素的坐标
- android - 用 http url 反应本机发送意图 openFileChooser 选项不起作用
- r - 绘制代表时间序列的观测集群
- tiddlywiki - 在 Tiddler 中,如何列出其所有字段及其值?
- typescript - 打字稿:定义为元组的扩展函数参数
- vuejs2 - 升级到 2.0+ v-calendar 后,日期选择器始终打开(加载时)
- ruby-on-rails - 项目选择的 ruby 版本与使用 asdf-ruby 的 ruby -v 不匹配
- python - While 循环意外退出
- laravel - 如何获取数据库中具有特定年级和主题的所有学习者?