ผมใช้ pyinstall กับ upx จากนั้นก็สร้าง bat file ตามด้านล่าง
set PIP=C:\Python25\Lib\site-packages\pyinstaller_1.2\
set PATH=C:\Python25
python %PIP%Makespec.py --noconsole --upx myProject.py
python %PIP%Build.py myProject.spec
แล้วก็รันมัน ปรากฎว่าได้ error แบบนี้
SystemError: Parent module 'hooks.hook-PIL' not loaded
ไม่ทราบว่าเป็นเพราะอะไร แล้วจะแก้ยังไงดีครับ
ผมใช้ python2.5, reportlab2.2, PIL-1.1.6, pyqt4 บนWindows นะครับ
ทำด้วยมือโดยไม่ใช้ bat โดย run ใน directory ของ pyinstaller โดยตรงได้ผลยังไงครับ
คือ ผมไม่ค่อยเข้าใจที่คุณ cwt บอกเท่าไหร่นะครับ
แต่ก็ได้ลองทำตามที่เข้าใจไปคือ
ผม copy file.py ทุกตัวที่เกี่ยวกับโปรเจ็คผมไปไว้ใน pyinstaller directory จากนั้นก็ใช้ command line ตามคำสั่งแบบเดียวกับ bat file ข้างต้น ก็ปรากฎว่า ไ้้ด้ผลเหมือนเดิมครับ
ไม่ทราบว่าผมทำอย่างที่คุณ cwt ต้องการจะให้ทำจริงๆรึเปล่า ถ้ายังไงรบกวนบอกด้วยครับ
ขอบคุณครับ
เหอๆ ขออนุญาตตอบเองนะ เค้าว่ามาอย่างนี้
PyInstaller works with any version of Python since 1.5 and up to 2.4.
ไม่รู้ว่าใช่รึเปล่านะครับ (ผมใช้ python 2.5)
ผมก็เลยหนีไปใช้ py2exe แทน ก็ไปหาวิธีจาก codenone มาแล้วก็ทำตามปรากฎว่า run setup.py ได้ไม่มีปัญหา แต่พอ double click ที่ exe มันฟ้องว่าหา _qt ไม่เจอ ก็หาวิธีแก้ไป ก็ไปเจอที่นี่ http://www.py2exe.org/index.cgi/Py2exeAndPyQt
ขอสรุปเอาไว้ให้ตัวเองด้วยนะครับ
สร้าง setup.py ไว้ที่เดียวกับ main.py โปรแกรมของเรา โดยข้างในเป็นแบบนี้
from distutils.core import setup
import py2exe
setup(windows=[{"script":"main.py"}], options={"py2exe":{"includes":["sip"]}})
จากนั้นก็เข้า command line
2.5 ก็ใช้ได้ เพราะผมก็ใช้อยู่