python - 我应该如何处理 Python 2.7 中 C 扩展的初始化方法中的错误?

标签 python python-2.7

在Python 2.7(我们需要支持)中,C/C++ 扩展的初始化函数应使用 PyMODINIT_FUNC 宏进行声明,这实际上使函数无效。但是,我不确定我们应该如何处理此函数期间发生的错误。我们可以在函数中抛出 C++ 异常,但我对这个想法并不感到兴奋。有更好的办法吗?

背景如下:为了解决我们无法在单个版本中解决的架构问题,我们需要让用户通过我们提供的脚本调用 Python,而不是直接从 Python 可执行文件调用。通过检查进程名称,我们可以检测用户通过可执行文件而不是脚本调用的情况。在这种情况下,我们希望发出错误消息,然后正常终止。

最佳答案

您可以使用 PyErr_Set* 之一方法。

调用init_module_name()后始终会检查异常。

文档中没有明确说明,但是如果您查看示例,或者如果您read the source ,你会发现这是真的。

关于python - 我应该如何处理 Python 2.7 中 C 扩展的初始化方法中的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30126510/

相关文章:

Python Pandas Fillna 中位数不起作用

Python 2.7 子进程 Popen 返回 None

python - 用QWebEngineView显示html时如何获取verticalScrollBar的最大值和当前值

python - gTTS 无法保存文件两次

python - 通过 pandas 根据多个条件删除重复值

Python JSON如何过滤返回的数据

python - 在 python 中,我可以将 print 函数的输出重定向到 stderr 吗?

python - 选择列中每行的前 N ​​个元素

python - Gtk.CssProvider() 基于 ID 的选择器如何在 Gtk3 中工作?

python - 如何在 mac OSX 10.9.4 上卸载 pygame