2015-05-13 91 views
0

我想讓我的遊戲運行。該代碼需要xml.sax。我用py2exe導入它,它仍然不想工作。我已經嘗試了幾天和幾天,我無法讓它工作。在我將它編譯爲.exe之前它可以工作,但是每當我將它編譯爲exe時,它都不起作用。python xml.sax沒有解析器找到py2exe

運行:

[ - ]的Python 2.7.9 32位

[ - ] py2exe 0.6.9 32位

的錯誤是:SAXReaderNotAvailable: No parsers found

這裏是我的遊戲代碼:

import xml.sax 

class DNAError(Exception): pass 
class DNAParseError(DNAError): pass 

elementRegistry = {} 
def registerElement(element): 
    elementRegistry[element.TAG] = element 

class DNASaxHandler(xml.sax.ContentHandler): 
def __init__(self): 
    xml.sax.ContentHandler.__init__(self) 

    self.stack = [] 
    self.root = None 

def startElement(self, tag, attrs): 
    if self.stack: 
     parent = self.stack[-1] 
     parentTag = parent.TAG 
    else: 
     parent = None 
     parentTag = None 

    element = elementRegistry.get(tag) 
    if not element: 
     raise DNAParseError('Unknown element type: ' + tag) 

    if parentTag not in element.PARENTS: 
     raise DNAParseError('Cannot put %s below %s element' % (tag, parentTag)) 

    element = element(**attrs) 
    self.stack.append(element) 
    element.reparentTo(parent) 

    if not self.root: 
     self.root = element 

def endElement(self, tag): 
    self.stack.pop(-1) 

def characters(self, chars): 
    if not self.stack: 
     return 

    self.stack[-1].handleText(chars) 

def parse(stream): 
handler = DNASaxHandler() 
xml.sax.parse(stream, handler) 
return handler.root 

這是我的py2exe編譯腳本:

from distutils.core import setup 
import py2exe 

setup(
options={"py2exe": {"includes": [ "xml.sax.drivers.*", "xml.sax.drivers2.*", "xml.sax" ] }}, 
zipfile = None, 
windows = ['relived.py'] 
) 
+0

OMG請!我有這個錯誤的日子和日子! –

回答

0

嘗試添加以下內容到setup.py py2exe命令行:

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

from this

+0

SAXReaderNotAvailable:沒有發現解析器 –

+0

仍然收到此錯誤。 –