cx_freeze を使用してフリーズした PyQt4 プログラムがあります。私が抱えている問題は、SVGファイルから作成されたピックスマップを取得しているQGraphicsPixmapItemを作成するときです。アイテムは問題なく作成されますが、ピックスマップは読み込まれないため、シーン内のアイテムだけの画像はありません. 私を混乱させているのは、これは、exe をビルドしたコンピューターとは別のコンピューターで実行している場合にのみ発生することです。ビルドしたコンピューターでexeを実行すると、プログラムは完全に機能します。必要なすべての python コンポーネントと pyqt コンポーネントがコンピューターにインストールされているコンピューターで実行しようとしても、それを構築したコンピューターでない場合、pixmap は svg ファイルから読み込まれません。これが私の cx_freeze セットアップの問題かどうかはわかりません。py ファイルまたはメイン コードで何かを変更する必要がある場合は、ヘルプまたは正しい方向に私を向けるだけで十分です。私の感じでは、cx_freeze がビルドするときに何かがおかしくなっているので、setup.py ファイルの内容を以下に貼り付けます。また、Python v3.1 を使用して Windows で実行しています。
from cx_Freeze import setup, Executable
files = ['drawings\\FULL', 'drawings\\PANEL', 'data.csv', 'panelData.csv']
binIncludes = ['C:\\Python31\\Lib\\site-packages\\PyQt4\\bin\\QtSvg4.dll']
includes = ['main', 'PunchDialog', 'ArrayDialog', 'PricingDialog', 'FontAndInputDialog', 'PanelSelector', 'PyQt4', 'os', 'sys', 'ctypes', 'csv']
packages = ['drawings']
path = ['C:\\Users\\Brock\\Documents\\Programming\\PanelDesigner\\DrawingFirst', 'C:\\Python31\\Lib', 'C:\\Python31\\Lib\\site-packages', 'C:\\Python31\\DLLs']
setup(
name = 'PanelBuilder',
version = '1.0',
description = 'Allows user to draw custom panel layouts.',
author = 'Brock Seabaugh',
options = {'build_exe': {'packages':packages, 'path':path, 'include_files':files, 'bin_includes':binIncludes, 'includes':includes}},
executables = [Executable('PanelBuilder.py')])
PS。これが私のファイル階層です(それがまったく役立つ場合):
\DrawingFirst
Main .py file
All .py files for all custom dialogs used
\drawings
some modules used
\FULL
A bunch of SVG files used
\PANEL
More SVG files used