使用Xlsxwriter和PyQt4时出现分段错误

时间:2014-10-10 15:30:31

标签: python segmentation-fault pyqt pyqt4 xlsxwriter

在同一个脚本中使用Python模块Xlsxwriter和PyQt4时,我目前遇到了分段错误。在运行Xlsxwriter时只需导入PyQt4会导致分段错误。

import sys 
from PyQt4 import QtGui

def WriteExcel(guitext,filename):
    import xlsxwriter
    workbook = xlsxwriter.Workbook(filename)
    worksheet = workbook.add_worksheet('Test Tab') 
    worksheet.write(0, 0, guitext) 
    workbook.close() 
    return


def main():
    WriteExcel('test text', 'test.xlsx')


if __name__ == '__main__':
    main()   

注释掉“来自PyQt4导入QtGui”修复了这个问题,虽然我需要使用Gui来获取要发送到Excel文件的信息。关于解决方案的任何想法?我用openpyxl而不是xlsxwriter尝试过类似的代码,我仍然得到一个seg。故障。

seg。 gdb的故障结果如下。

<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from [path to]/anaconda/bin/python...done.
Starting program: [path to]/anaconda/bin/python qtgui-excel.py
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x00002aaab0541624 in fill_window () from [path to]/anaconda/lib/libz.so.1

也许它与编写XML有关?

更新

将错误跟踪到Xlsxwriter中ZipFile命令中使用的压缩。

zipfile.ZIP_DEFLATED

此压缩根据Zipfile文档使用libz模块。

1 个答案:

答案 0 :(得分:1)

  

也许它与编写XML

有关

可能不是。 XlsxWriter使用它自己的xml编写器。

段错误似乎在libz中,它是从核心zipfile模块调用的,它由XlsxWriter和OpenPyXL使用。