CX_Freezeを使用してPython3&PYQT4をコンパイルする問題
-
13-12-2019 - |
質問
私はCX_Freezeを使ってPython3とPyqt4を使って書いた簡単なスクリプトをコンパイルしようとしていますが、私はただ理解できない3つの問題があります。
-
アイコンが表示されることはできません。私はそれのためにコンパイルされたリソースファイルを使用しています、すなわち、リソースを含む.pyをインポートしています、そして私はアドバイス 、ImageFormatsフォルダを自分のプロジェクトフォルダにコピーするが、何も機能しないようです。
-
TclとTTKを含むseverl pythonモジュールを使用していませんので、
excludes
オプションに追加しました。しかし、彼らはまだ追加されているようです。 -
作成したEXEを実行している
base='Win32GUI'
を使用してコンパイルしようとすると、Exceptionが発生します.'NoneType' has no attribute 'encoding'
CX_FREEZEのドキュメントは非常に冗長ではないので、セットアップスクリプトに問題があることをよく確信しています。これがセットアップスクリプトです。私が整っているスクリプトを投稿するつもりはありませんが、それが必要な場合は必要な場合はテストのための簡潔なバージョンを作成しようとします。
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.py',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
data_files=['imageformats'],
executables=[exe],
options={'build-exe': options}
)
.解決
(約1程度のことを確認してください)
2:options= {'build-exe' ...、Build_exe(ダッシュの代わりにアンダースコア)である必要があると思います。
3:あなたはどこでもsys.stdout.encoding
のようなものにアクセスしようとしていますか?Win32GUIベースを使用すると、sys.stdout
はなしになります。print()
呼び出しでもそれを起動する可能性があります。
他のヒント
解決しました。Thomasのポインタに加えて、 'data_files'ではなく、オプションの 'include-files'の下にある 'imageformats'が必要でした。私の最後のスクリプトは次のようになります:
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.pyw',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk', 'tkinter'],
include_files=['imageformats']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
executables=[exe],
options={'build_exe': options}
)
.