1

プログラムをPythonで作成しました。これは7つのファイルにまたがって書き込まれ、そのうちの3つのファイルにカスタムパッケージをインポートします。問題は、プログラムをexeファイルに組み込むことができないことです。pyinstaller1.5.1とpy2exeを試しました。私は見つけたすべてのチュートリアルに従いましたが、成功しませんでした。作成したexeを実行しようとするたびに、カスタムパッケージが見つからないというエラーメッセージが表示されます。完全なパッケージをexeに組み込むことができなかったと思います。助けてください。

from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')

mfcfiles = [os.path.join(mfcdir, i) for i in ["mfc90.dll", "mfc90u.dll", "mfcm90.dll", "mfcm90u.dll", "Microsoft.VC90.MFC.manifest"]]

data_files = [("Microsoft.VC90.MFC", mfcfiles),]

setup(
    data_files = data_files,
    options = {'py2exe': {'optimize': 2}},
    windows = [{'script': "LoadFilesGUI.py"}],
    zipfile = "shared.lib",
)

別:

from distutils.core import setup
import py2exe, sys, os

sys.argv.append('py2exe')

setup(
    options = {'py2exe': {'optimize': 2}},
    windows = [{'script': "LoadFilesGUI.py"}],
    zipfile = None,
    console=['LoadFilesGUI.py'],
)
4

2 に答える 2

2

「カスタムパッケージ」とは、アプリケーションを構成するカスタムPythonモジュールを意味すると想定しています。自動的に検出されない場合に備えて、setup()呼び出しの「includes」オプションを使用して、含める必要のあるpythonモジュールを手動で指定することをお勧めします。

setup( 
    windows = [{'script': "LoadFilesGUI.py"}], 
    data_files = data_files, 
    zipfile = None, 
    options = {
        'py2exe': {
            'optimize': 2, 
            'bundle_files': 1,
            'includes' : [],
        }
    }, 
) 

たとえば、PyQt4を使用する私のプロジェクトでは、インクルードは次のようになります。

options={ 
    "py2exe": { 
        "includes" : ['sip','PyQt4.QtCore','PyQt4.QtGui',
                        'PyQt4.QtNetwork','PyQt4.QtWebKit'] 
    } 
}

setup.pyスクリプトの残りの部分はかなり標準的なようです。含まれているモジュールがPYTHONPATHの一部であり、プロジェクトに関連しているか、パスに明示的に追加されていることを確認してください。

コメントで述べたようにMyPackage、プロジェクト内のパッケージである 場合は、次のようにします。'includes' : ['MyPackage']

それでもエラーが発生する場合は、プロジェクトとパッケージの構造に問題があるか、PYTHONPATHに問題がある可能性があります。

于 2012-04-05T20:13:48.623 に答える
0

cx_freezeがその答えです。

私の経験から、最も信頼できるオプションです。一部の依存関係が欠落している場合もありますが、欠落しているものが見つかったら、手動で簡単に追加できます。

于 2012-04-05T18:30:41.823 に答える