2014-05-25 40 views
1

我發現了一件奇怪的事情。當我通過PyCharm運行python代碼時,我的應用程序工作正常。但是當我通過py2exe應用程序崩潰的exe文件錯誤:Python 2.7:xml.sax._exceptions.SAXReaderNotAvailable:沒有發現解析器

Traceback (most recent call last): 
    File "main.py", line 23, in CreateNewClientRequest 
    File "suds\client.pyc", line 112, in __init__ 
    File "suds\reader.pyc", line 152, in open 
    File "suds\wsdl.pyc", line 136, in __init__ 
    File "suds\reader.pyc", line 79, in open 
    File "suds\reader.pyc", line 101, in download 
    File "suds\sax\parser.pyc", line 127, in parse 
    File "suds\sax\parser.pyc", line 111, in saxparser 
    File "xml\sax\sax2exts.pyc", line 37, in make_parser 
    File "xml\sax\saxexts.pyc", line 77, in make_parser 
xml.sax._exceptions.SAXReaderNotAvailable: No parsers found 

有誰知道如何解決這個問題? 這裏是我的一個Python代碼樣本(可能是它可以幫助):

# -*- coding: UTF-8 -*- 

import sys, xml 
from PyQt4 import QtGui 
from window import Ui_SmartRequest 
from suds.client import Client 

class Main(QtGui.QMainWindow): 
    def __init__(self): 
     QtGui.QMainWindow.__init__(self) 
     self.ui = Ui_SmartRequest() 
     self.ui.setupUi(self) 
     self.ui.btn.clicked.connect(self.CreateNewClientRequest) 

    def CreateNewClientRequest(self): 
     shop = self.ui.shop_line.text() 
     shop1 = "%s" %shop 
     card_id = self.ui.card_line.text() 
     card_id1 = "%s" %card_id 
     anketa = self.ui.anketa_line.text() 
     anketa1 = "%s" %anketa 
     client = Client('http://172.16.0.37:8000/CardPort?wsdl') 
     out = client.service.CreateNewClientRequest(shop1, card_id1, anketa1) 
     out1 = "%s" %out 
     out2 = str(out1[19:38]) 
     out3 = out2.replace("}", "") 
     self.ui.line_out.setText("Code:"+out3) 

if __name__ == '__main__': 
    app = QtGui.QApplication(sys.argv) 
    window = Main() 
    window.show() 
    sys.exit(app.exec_()) 

而且還從setup.py代碼:

from distutils.core import setup 
import py2exe 

setup(
    windows=[{"script":"main.py"}], 
    options={"py2exe": {"includes":["PyQt4","sip","suds","sys","os","wstools","defusedxml", "xml.sax"]}}, 
    zipfile=None 

) 

,我會很高興,如果有人可以幫助我!

回答

0

如果您收到

文件 「XML \薩克斯\ saxexts.pyc」,行77,在make_parser xml.sax._exceptions.SAXReaderNotAvailable:沒有發現的解析器嘗試 這添加到您的setup.py py2exe命令行:

--packages xml.sax.drivers,xml.sax.drivers2 

源:http://www.py2exe.org/index.cgi/Py2exeAndPyXML

+0

[鏈接](http://www.py2exe.org/index.cgi/py2exeAndSOAPpy) - 這裏解決。 @FrEaKmAn「謝謝」 – AntonyParker