cx_Freezeでpython3.2を実行形式(.exe)にする


pythonスクリプトをexeにするには、cx_Freeze / py2exe / PyInstallerと方法がいろいろあります。今回はcx_Freezeを使う方法を試してみたいと思います。

環境はWindows 7 Home Premium(64bit)。Python、PySideのインストールは前回の記事を参考にして下さい。

 

インストールするもの


cx_Freeze-4.2.3.win-amd64-py3.2.msi

 

・実行形式(.exe)に変換


test.py

  1. import sys
  2. from PySide.QtCore import *
  3. from PySide.QtGui import *
  4.  
  5. def main():
  6.     app = QApplication(sys.argv)
  7.     # Create a Label and show it
  8.    label = QLabel("Hello World")
  9.     label.show()
  10.     # Enter Qt application main loop
  11.    app.exec_()
  12.     sys.exit()
  13.  
  14. if __name__ == '__main__':
  15.     main()

 

setup.py

  1. from cx_Freeze import setup, Executable
  2.  
  3. setup(
  4.     name = "test",
  5.     version = "0.1",
  6.     description = "test",
  7.     executables = [Executable("test.py")])

 

上記スクリプトを同じ場所に保存して、コマンドプロンプトで次のコマンドを実行します。

  1. setup.py build

 

問題点


・パスに日本語を含む場所で実行すると「Fatal Python error: cannot get zipimporter instance」とエラーになる。

・64bitで作成したファイルは32bitで実行できない?

・簡単なプログラムでも結構な容量になる。