質問

私はPyQtはを使用して、Windowsでの単純なハローワールド実行可能なPythonのGUIアプリを作るしようとしています。だから私はpyqt.pyファイルを作りました。

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()

私は、次のsetup.pyスクリプトでpy2exe使用しようとしました。

from py2exe.build_exe import py2exe
from distutils.core import setup

setup( console=[{"script": "pyqt.py"}] )

(私は最初No module named sipエラーがあったが、それはPy2exeAndPyQtページのおかげで解決しています)。

今、私が実行可能ファイルを持っていると私はそれを実行しようとすると、私は次のエラーを取得する:

Traceback (most recent call last):
  File "pyqt.py", line 2, in <module>
  File "PyQt4\QtGui.pyc", line 12, in <module>
  File "PyQt4\QtGui.pyc", line 10, in __load
ImportError: No module named QtCore

どのように私はそれを修正することができますか? TIA

役に立ちましたか?

解決

あなたはこのような何かを行うことができ、あなたはインポート*を必要としません。

py2exe_opciones = {'py2exe': {"includes":["sip"]}}
script = [{"script":"pyqt.py"}]

setup(windows=script,options=py2exe_opciones)

そして今、プログラムが動作するはずます。私は、同じエラーが発生しました。

ここの続きを読むことができます。

他のヒント

pyqt.pyにfrom PyQt4.QtCore import *を追加します。

それは自動含まれなかった理由私はわからないんだけど、私はそれが唯一のC ++ libですQtGui、によって使用されているQtCoreとは何かを持っていると思います。

...のように、py2exeのみのpythonの依存関係を自動検出...だから、それを手動でインポートする必要があります。

これは一例である

from setuptools import setup
import py2exe
from glob import glob

SETUP_DICT = {
    'windows': [{
        'script': 'main.py',
    }],

    'zipfile': 'lib/library.zip',

    'data_files': (
        ('', glob(r'C:\Windows\SYSTEM32\msvcp100.dll')),
        ('', glob(r'C:\Windows\SYSTEM32\msvcr100.dll')),
    ),

    'options': {
        'py2exe': {
            'bundle_files': 3,
            'includes': ['sip', 'PyQt4.QtCore'],
        },
    }
}

setup(**SETUP_DICT)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top