4

以前は、py2exeのために、pycompiler(または「pyinstaller」)を使用して、PyQt4フレームワークを使用するプログラムを実行可能コードにコンパイルしていました。
最近コンピューターを切り替えましたが、まだPyQt4プログラムをコンパイルできていません。

このコンピューターでは、pyinstaller.pyファイルのディレクトリを持つ環境変数%pycompile%を設定しました。

これが私がcmd.exeにプラグインしたコードで、PythonコードNOTIMPORTPYQT4で動作しています。

python %pycompile% --noconsole myscript.pyw

ただし、PyQt4ベースのプログラムをコンパイルしようとすると、PyQt4プログラムをコンパイルしようとすると、pyinstaller.pyによってインポートされたPythonファイル内から(私の解釈では)発生する構文エラーが発生します。"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

古いコンピューターで使用していたものと同じビルド(216)のpycompileを使用しています。どちらも32ビットのWindowsと32ビットのPython2.7.2を実行します。

すべての助けが欲しかった!
(MASSIVEプログラミングプロジェクトをコンパイルできないことに驚いています!)

PyQtでのpyinstallerエラーに関するStackの質問をかなり読みましたが、特定のエラーではありません。

ありがとう!

私のコードは次で始まります:

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

そしてで終わる:

sys.exit(ApplicationRun.exec_())

python 2.7.2(32ビット)
pycompileビルド(216)
PyQt4(4.5)
Windows 7(32ビット)

4

2 に答える 2

1

Avarisの共有提案によって修正されました。
http://code.google.com/p/mpmath/issues/detail?id=204

于 2012-07-11T11:47:09.437 に答える
0

pyinstallerはPython3を使用しているようです。これはexec_ = exec、Python 3でのみ有効であり、exec_py3.pyもトレースバックに含まれているためです。pyinstallerにPython2.7を使用するように指示するオプションを与えてみてください。

于 2012-07-11T10:10:22.900 に答える