python compilation pyqt pyqt4 pyinstaller

python - Error al compilar PyQt4 con Pyinstaller



compilation (2)

En el pasado, he usado pycompiler (o ''pyinstaller'') para compilar mis programas que usan el framework PyQt4 en código ejecutable, simplemente porque py2exe.
¡He cambiado computadoras recientemente y todavía no he logrado compilar mis programas PyQt4!

En esta computadora, he establecido una variable de entorno% pycompile% que tiene el directorio del archivo pyinstaller.py.

Aquí está el código que conecto al cmd.exe, que está funcionando con el código python NOT IMPORT PYQT4.

python %pycompile% --noconsole myscript.pyw

Sin embargo, cuando intento compilar mi programa basado en PyQt4, obtengo un error de sintaxis que se origina (según mi interpretación) desde dentro de un archivo python importado por pyinstaller.py cuando se intenta compilar programas PyQt4. "exec_ = exec"

E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE>python %pycompile% Penny.pyw I: skip Configure.py, use existing config C:/Python27/PyCompile/config.dat wrote E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Penny.spec I: Dependent assemblies of C:/Python27/python.exe: I: x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_none checking Analysis building Analysis because outAnalysis0.toc non existent running Analysis outAnalysis0.toc Analyzing: C:/Python27/PyCompile/support/_mountzlib.py Analyzing: C:/Python27/PyCompile/support/useUnicode.py Analyzing: Penny.pyw Syntax error in exec_py3.py (''invalid syntax'', (''exec_py3.py'', 1, 12, ''exec_ = exec/n'')) Traceback (most recent call last): File "C:/Python27/PyCompile/pyinstaller.py", line 187, in <module> main(parser) File "C:/Python27/PyCompile/pyinstaller.py", line 76, in main run_build(opts, args, spec_file) File "C:/Python27/PyCompile/pyinstaller.py", line 52, in run_build Build.main(spec_file, configfilename=opts.configfile) File "C:/Python27/PyCompile/Build.py", line 1472, in main build(specfile) File "C:/Python27/PyCompile/Build.py", line 1429, in build execfile(spec) File "E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Penny.spec", line 3, in <module> pathex=[''E://ChemCalc ULTIMATE//ChemCalc ULTIMATE'']) File "C:/Python27/PyCompile/Build.py", line 347, in __init__ self.__postinit__() File "C:/Python27/PyCompile/Build.py", line 298, in __postinit__ self.assemble() File "C:/Python27/PyCompile/Build.py", line 416, in assemble analyzer.analyze_script(script) File "C:/Python27/PyCompile/mf.py", line 572, in analyze_script return self.analyze_r(''__main__'') File "C:/Python27/PyCompile/mf.py", line 466, in analyze_r newnms = self.analyze_one(name, nm, imptyp, level) File "C:/Python27/PyCompile/mf.py", line 525, in analyze_one mod = self.doimport(nm, ctx, fqname) File "C:/Python27/PyCompile/mf.py", line 587, in doimport mod = parent.doimport(nm) File "C:/Python27/PyCompile/mf.py", line 761, in doimport mod = self.subimporter.getmod(nm) File "C:/Python27/PyCompile/mf.py", line 355, in getmod mod = owner.getmod(nm) File "C:/Python27/PyCompile/mf.py", line 117, in getmod co = compile(string.replace(stuff, "/r/n", "/n"), py[0], ''exec'') File "exec_py3.py", line 1 exec_ = exec ^ SyntaxError: invalid syntax

Estoy usando la misma compilación (216) de pycompile que solía usar en mi computadora vieja. Ambos ejecutan Windows de 32 bits con 32 bit python 2.7.2.

Toda la ayuda quería!
(¡Me da miedo que mi proyecto de programación MASSIVE no pueda compilarse!)

He leído bastantes preguntas de Pila sobre errores de Pyinstaller con PyQt, ¡pero no es mi error en particular!

¡Gracias!

Mi código comienza con:

import sys import getpass import hmac import random import shutil from PyQt4 import QtGui, QtCore from RegMenu import Ui_RegristrationMenu from ChemWindow import Ui_ChemWindow from ReactionClass import ReactionElement from StoichUnitSelectionClass import Ui_StoichUnitSelection from VisualTool import Ui_Aesthetics_Tool import decimal import sympy import math

y termina con:

sys.exit(ApplicationRun.exec_())

Python 2.7.2 (32 bit)
creación de pycompile (216)
PyQt4 (4.5)
Windows 7 (32 bit)



Parece que pyinstaller está usando Python 3 porque exec_ = exec es legal solo en Python 3 y también exec_py3.py está en el rastreo. Intenta darle una opción al instalador de aplicaciones para que diga que use Python 2.7.