Python 使用Xlsxwriter和PyQt4时出现分段错误
在同一个脚本中使用Python模块Xlsxwriter和PyQt4时,我当前遇到了分段错误。在运行Xlsxwriter时只需导入PyQt4就会导致分段错误Python 使用Xlsxwriter和PyQt4时出现分段错误,python,segmentation-fault,pyqt,pyqt4,xlsxwriter,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_works
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尝试了类似的代码,但仍然出现了一个seg.fault
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
根据Zipfile文档,此压缩使用libz模块
也许这与编写XML有关
可能不是。XlsxWriter使用自己的xml编写器
segfault似乎位于
libz
中,它是从XlsxWriter和OpenPyXL都使用的核心zipfile模块调用的。是有意义的。是否有一种处理此类冲突的通用方法?可能最好尝试进一步隔离问题。尝试一个简单的zipfile编写示例,看看是否存在segfault。如果然后t将此作为问题报告给PyQT4开发人员。如果不是,则需要更深入地了解XlsxWriter/OpenPyXL使用的ZipFile模块的哪些功能导致了此问题。尽管第一步可能是在不使用PyQT4的情况下运行程序的XlsxWriter部分,并查看是否出现segfault。如果是这样,则不是一个错误PyQt4问题。谢谢你的提示。我已经缩小了破坏PyQt4的代码范围。import sys
from PyQt4 import QtGui
def WriteZip():`import zipfile``zf=zipfile.zipfile('zipfile_write.zip',mode='w',compression=zipfile.zipèDEFLATED)`zf.write('README.txt')`zf.close()`return`def main():
`WriteZip()`如果uuu name uuu=='uuu main uu':
`main()`这在zf.write命令处中断。但只有当commpression设置为`compression=zip.zip\u DEFLATED`时,zipfile模块甚至说zip\u DEFLATED需要zlib。
zipfile.ZIP_DEFLATED