1

我目前在同一脚本中使用 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()   

注释掉“from PyQt4 import QtGui”解决了这个问题,尽管我需要使用 Gui 来获取发送到 Excel 文件的信息。关于变通的任何想法?我用 openpyxl 而不是 xlsxwriter 尝试了类似的代码,但我仍然得到一个段。过错。

段。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 模块。

4

1 回答 1

1

可能跟写 XML 有关系

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

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

于 2014-10-10T21:44:06.143 回答