質問

私はCX_Freezeを使ってPython3とPyqt4を使って書いた簡単なスクリプトをコンパイルしようとしていますが、私はただ理解できない3つの問題があります。

  1. アイコンが表示されることはできません。私はそれのためにコンパイルされたリソースファイルを使用しています、すなわち、リソースを含む.pyをインポートしています、そして私はアドバイス 、ImageFormatsフォルダを自分のプロジェクトフォルダにコピーするが、何も機能しないようです。

  2. TclとTTKを含むseverl pythonモジュールを使用していませんので、excludesオプションに追加しました。しかし、彼らはまだ追加されているようです。

  3. 作成したEXEを実行しているbase='Win32GUI'を使用してコンパイルしようとすると、Exceptionが発生します.'NoneType' has no attribute 'encoding'

  4. 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}
)
.

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