一些背景,其相关性可能会波动:
我目前拥有一些 F2Py 库 - F2Py 从一些 Fortran 代码编译的 Python 模块。出于所有意图和目的,您可以将这些模块视为“第三方”;我目前无法访问 Fortran 源代码,并且我不负责编译过程。
这些模块本身被导入到我正在帮助开发的一个程序中,该程序具有 Python 脚本支持并且可以在多个平台上运行。
我试图防止将来因编译计算机上的库版本与用户计算机不同步而引起的兼容性问题而导致崩溃。已经出现了一个问题,我们用户的一台机器已更改为不兼容的 numpy 版本,这导致在导入模块时启动时出现不可接受的段错误。
问题:
我正在寻找一种导入 F2Py 模块的方法,但这样我就可以处理由于模块可能依赖的库版本不兼容而可能发生的任何段错误。我目前在调用 import 之前检查 numpy 版本,但我宁愿先导入,然后稍后“捕获”任何问题:
try:
import module_name
except SegFault:
# Deal with it.
正在捕获段错误 -特别是由于进口- 有可能吗?
段错误不是一个例外,它是一个signal http://docs.python.org/library/signal.html。您可以通过为信号分配处理程序来“捕获”信号。
import signal
def sig_handler(signum, frame):
#deal with the signal..
signal.signal(signal.SIGSEGV, sig_handler)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)