簡單解決方案: c:\Python26\python.exe setup.py py2exe --includes sip
使用pyqt完成表單介面很方便,但是打包成exe之後會有問題,在網上找到解決辦法如下:
Another Solution to the same problem:
from distutils.core import setup
import py2exe
setup(windows=[{"script":"main.py"}], options={"py2exe":{"includes":["sip"]}})
I found that on the web, unfortunately don't know anymore where, but it also works for me!
Obviously is the second part only a way to get the " --includes sip" parameter directly into the script, but the use of "windows" instead of "console" doesn't open a console window, but immediately a Qt window in my case.
Fix for PyQt4
If you get the following error:
ImportError: No module named _qt
The solution is to add PyQt4._qt to the setup function (see bellow). I found the solution for the problem here.
切換行號顯示
1 from distutils.core import setup
2 import py2exe
3
4 setup(windows=[{"script" : "app.pyw"}], options={"py2exe" : {"includes" : ["sip", "PyQt4._qt"]}})
官方的解決方案:
http://www.py2exe.org/index.cgi/Py2exeAndPyQt
官方的pyexe手冊:
http://www.py2exe.org/index.cgi/Tutorial#Step1
ImportError: No module named sip2009-11-07 21:21
Error message File "form1.pyc", line 11, in ? File "qt.pyc", line 9, in ? File "qt.pyc", line 7, in __loadImportError: No module named sip Solution python setup.py py2exe --includes sip setup.py Toggle line numbers 1 from py2exe.build_exe import py2exe 2 from distutils.core import setup 3 setup( console=[{"script": "main.py"}] )Reference I found this tips here : http://nerdierthanthou.nfshost.com/2005/03/image-resizer.html There is a full code sample. Another Solution to the same problem: from distutils.core import setupimport py2exesetup(windows=[{"script":"main.py"}], options={"py2exe":{"includes":["sip"]}})I found that on the web, unfortunately don't know anymore where, but it also works for me! Obviously is the second part only a way to get the " --includes sip" parameter directly into the script, but the use of "windows" instead of "console" doesn't open a console window, but immediately a Qt window in my case. Fix for PyQt4 If you get the following error: ImportError: No module named _qt The solution is to add PyQt4._qt to the setup function (see bellow). I found the solution for the problem here. Toggle line numbers 1 from distutils.core import setup 2 import py2exe 3 4 setup(windows=[{"script" : "app.pyw"}], options={"py2exe" : {"includes" : ["sip", "PyQt4._qt"]}})Using PyQt4 with Databases When deploying applications which use PyQt4 and SQLite:
Add "PyQt4.QtSql' to the setup includes.
Copy the contents of PyQt4\plugins\sqldrivers to <appdir>\sqldrivers. It did not work for me in any subdirectory including the zipfile directory. For SQLite I only needed to copy qsqlite4.dll.
- A separate copy of sqlite3.dll is not needed.
|