0

cx_Freeze を使用して実行可能ファイルをビルドしています。Pyqt4 と QtSql モジュールを使用してデータベースを表示しました。問題は、python スクリプトを実行するとデータベースが表示され、テーブルが正常に動作することですが、実行可能ファイルとして実行すると、テーブルが正しく動作せず、何も表示されません。スクリプトPythonスクリプトで実行する場合 として実行する場合: 実行可能ファイルとして実行する場合:実行可能ファイルとして実行する場合 理由は? これは cx_Freeze のバグですか?

テーブルを作成するための私のコードは次のとおりです。

        self.ProductModel = QtSql.QSqlRelationalTableModel()
        self.ProductModel.setTable("Product")
        self.ProductModel.setRelation(6, QtSql.QSqlRelation("ProductType","ProductTypeID","Type"))
        self.ProductModel.select()

        fields = ["Product ID", "Product Name", "In Stock", "Expiry Date", "Stock Alert", "Price", "Product Type"] 
        for count in range(len(fields)):
            self.ProductModel.setHeaderData(count, QtCore.Qt.Horizontal, fields[count])

        edit = QtSql.QSqlTableModel.OnManualSubmit 
        self.ProductModel.setEditStrategy(edit)

        self.ProductView = QtGui.QTableView()
        self.ProductView.setModel(self.ProductModel)
        self.ProductView.setSelectionMode(self.mode)
        self.ProductView.setItemDelegate(ProductDelegate())
        self.ProductView.sortByColumn(0,QtCore.Qt.AscendingOrder)
        self.ProductView.setSortingEnabled(True)

スクリプト中はすべて正常に動作するため、これに問題はありません。

cx_Freeze のセットアップ スクリプト コードは次のとおりです。

from cx_Freeze import setup, Executable import sys import matplotlib

base = None if sys.platform == 'win32':
    base = 'Win32GUI'

executables = [Executable("Main.py", base = base)] includes = ['matplotlib', 'PyQt4.QtSql'] setup(name = 'Test',
      options = {"build_exe" : {"includes" : includes }},
      version = '0.18',
      description = 'Test',
      executables = executables)
4

1 に答える 1