私は XP で Python 2.6 を使用しています。py2exe をインストールしたところ、hello.py から単純な hello.exe を正常に作成できました。しかし、実際のプログラムで py2exe を使用しようとすると、py2exe はいくつかの情報メッセージを生成しますが、dist フォルダーに何も生成されません。
私の setup.py は次のようになります:
from distutils.core import setup
import py2exe
setup(console=['ServerManager.py'])
py2exe の出力は次のようになります。
python setup.py py2exe
running py2exe
creating C:\DevSource\Scripts\ServerManager\build
creating C:\DevSource\Scripts\ServerManager\build\bdist.win32
...
...
creating C:\DevSource\Scripts\ServerManager\dist
*** searching for required modules ***
*** parsing results ***
creating python loader for extension 'wx._misc_' (C:\Python26\lib\site-packages\wx-2.8-msw-unicode\wx\_misc_.pyd -> wx._misc_.pyd)
creating python loader for extension 'lxml.etree' (C:\Python26\lib\site-packages\lxml\etree.pyd -> lxml.etree.pyd)
...
...
creating python loader for extension 'bz2' (C:\Python26\DLLs\bz2.pyd -> bz2.pyd)
*** finding dlls needed ***
py2exe はすべてのインポートを見つけたようです (ただし、明示的にインポートしていないため、win32 が言及されているのには少し驚きました)。また、プログラムは次のコマンドで問題なく起動します。
python ServerManager.py
明らかに何か根本的な間違いを犯していますが、py2exe からエラー メッセージが表示されないので、何が間違っているのかわかりません。
ベストアンサー1
私はこれをすべての setup.py スクリプトに組み込みました:
distutils.core.setup(
options = {
"py2exe": {
"dll_excludes": ["MSVCP90.dll"]
}
},
...
)
これにより、py2exe は静かになりますが、dll がユーザーのマシン上にあることを確認する必要があります。