9

Python 2.7とPyqt4で記述された単純なGUIスクリプトを、py2exeを使用してスタンドアロンの実行可能ファイルに変換する作業を行っています。「そのようなファイルは存在しません」というエラーが発生し続け、これは頑固に見えますが、いくつか修正することができました。msvcp90.dllが見つからず、distutilsへの短いトレースバックを含むエラーメッセージが返され、その後py2exeスクリプトに戻りますが、これはあまり啓蒙的ではありません。で推奨されているように、MSC++再配布可能ランタイムをインストールしました

py2exeは実行可能ファイルの生成に失敗します

しかし、私のスクリプトはまだ.dllを見つけることができません。以下は私のpy2exeスクリプトで、私のスクリプトの名前はブロックされています。

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

sys.argv.append('py2exe')

os.environ["PATH"] = \
os.environ["PATH"] + \
os.path.pathsep + os.path.split(zmq.__file__)[0]

setup(
    options = {'py2exe':{'bundle_files':1,"includes":["zmq.utils", 
            "zmq.utils.jsonapi","zmq.utils.strtypes"]}},
    console = [{'script':"#######.py"}],
    zipfile = None
)

私はすでにzmqの問題を修正しました(私が知る限り、これは私のスクリプトやGUIでは使用されていません)。私は何が間違っているのですか?

4

1 に答える 1

9

そうです、私はなんとか自分のアプリを構築することができました。質問は今では適度に古くなっていますが、これが最終的に誰かに役立つことを願っています。

まず、 py2exeはおそらく間違ったツールです。それは古く、AFAICTは維持されていません。代わりにPyInstallerを検討してください。PyInstallerの使用は、文字通り、インストールしてPyWin32をインストールしてから、実行するのと同じくらい簡単python %path_to_pyinstaller%/pyinstaller.py --onefile --windowed source.pyです。PyInstallerは、何もしなくても、サイドバイサイドアセンブリなどのすべての混乱を処理します。

つまり、PyInstallerを使用します。

しかし、あなたの質問に答えるために、これは私のために働きました:

  1. あなたがリンクした質問-特にこの答えは正しいスタートです。適切なDLLを見つけて、C:\ Python27\DLLsにコピーします
  2. 既存のsetup.pyファイルを破棄します。を使用していない場合はzmq、インポートする理由はありません。また、ウィンドウ化されたアプリケーションの場合は必要windows=ありませんconsole=。私のファイルは(パッケージング用にshow.py)行きます:

    #!/usr/bin/python
    
    from distutils.core import setup
    import py2exe
    
    setup(options={'py2exe':{'bundle_files':1}},
          windows=['show.py'])
    

    (これはhttp://www.blog.pythonlibrary.org/2010/07/31/a-py2exe-tutorial-build-a-binary-series/からピンチオフされています)

于 2013-02-24T11:17:43.337 に答える