Thread: [cx-freeze-users] Startup error, OSX, PyQt4 importing QWebkit, no module named QtNetwork
Brought to you by:
atuining
From: David C. <dav...@gm...> - 2013-11-18 00:55:50
|
Add the following single line to cx_Freeze/samples/PyQt4/PyQt4app.py: from PyQt4.QtWebKit import(QWebFrame) The app seems to freeze correctly but when executed it fails to start up: [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] build/exe*/PyQt4app Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", line 27, in <module> exec code in m.__dict__ File "PyQt4app.py", line 6, in <module> from PyQt4.QtWebKit import(QWebFrame) File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ ImportError: No module named QtNetwork The error is happening during execution of the import statement. QtNetwork (anyway, something named QtNetwork) is present in the freeze package. |
From: Thomas K. <ta...@gm...> - 2013-11-18 03:11:29
|
Hi David, What file called QtNetwork is present? Can you post the log from doing the freeze somewhere? If you add a "from PyQt4 import QtNetwork" in the script, does the build directory change at all, and does running it produce different results? It might be as simple as defining a hook to copy QtNetwork when QtWebkit is included. Thanks, Thomas On 17 November 2013 16:55, David Cortesi <dav...@gm...> wrote: > Add the following single line to cx_Freeze/samples/PyQt4/PyQt4app.py: > > from PyQt4.QtWebKit import(QWebFrame) > > The app seems to freeze correctly but when executed it fails to start up: > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] > build/exe*/PyQt4app > Traceback (most recent call last): > File > "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", > line 27, in <module> > exec code in m.__dict__ > File "PyQt4app.py", line 6, in <module> > from PyQt4.QtWebKit import(QWebFrame) > File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> > File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ > ImportError: No module named QtNetwork > > The error is happening during execution of the import statement. QtNetwork > (anyway, something named QtNetwork) is present in the freeze package. > > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > |
From: David C. <dav...@gm...> - 2013-11-18 04:21:19
|
Sorry, here is some more detail. Here is the output of the freeze run, with some "snips" of what I think was irrelevant... [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] python setup.py build running build running build_exe copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/bases/Console -> build/exe.macosx-10.6-intel-2.7/PyQt4app copying /Library/Frameworks/Python.framework/Versions/2.7/Python -> build/exe.macosx-10.6-intel-2.7/Python writing zip file build/exe.macosx-10.6-intel-2.7/library.zip Name File ---- ---- m BUILD_CONSTANTS P PyQt4 /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/__init__.py m PyQt4.QtCore /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so m PyQt4.QtGui /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so m PyQt4.QtWebKit /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so m PyQt4app__main__ PyQt4app.py m StringIO m UserDict m __builtin__ <snip> Missing modules: ? _emx_link imported from os ? cStringIO imported from encodings.quopri_codec, encodings.uu_codec, quopri ? ce imported from os ? getopt imported from base64, quopri ? nt imported from os ? ntpath imported from os ? org.python.core imported from copy ? os.path imported from os ? os2 imported from os ? os2emxpath imported from os ? re imported from base64, encodings.idna, posixpath, warnings ? riscos imported from os ? riscosenviron imported from os ? riscospath imported from os ? subprocess imported from os This is not necessarily a problem - the modules may not be needed on this platform. copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtCore.so copying /Library/Frameworks/QtCore.framework/Versions/4/QtCore -> build/exe.macosx-10.6-intel-2.7/QtCore copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtGui.so copying /Library/Frameworks/QtGui.framework/Versions/4/QtGui -> build/exe.macosx-10.6-intel-2.7/QtGui copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so -> build/exe.macosx-10.6-intel-2.7/*PyQt4.QtWebKit.so <http://PyQt4.QtWebKit.so>* copying /Library/Frameworks/QtWebKit.framework/Versions/4/QtWebKit -> build/exe.macosx-10.6-intel-2.7/*QtWebKit* copying /Library/Frameworks/QtNetwork.framework/Versions/4/QtNetwork -> build/exe.macosx-10.6-intel-2.7/*QtNetwork* <snip> copying /Developer/Applications/Qt/plugins/imageformats/libqsvg.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqsvg.dylib copying /Developer/Applications/Qt/plugins/imageformats/libqtga.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqtga.dylib copying /Developer/Applications/Qt/plugins/imageformats/libqtiff.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqtiff.dylib [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] ls build/exe.macosx-10.6-intel-2.7/ PyQt4.QtCore.so QtCore _codecs_hk.so _multibytecodec.so itertools.so PyQt4.QtGui.so QtGui _codecs_iso2022.so _struct.so library.zip PyQt4.QtWebKit.so *QtNetwork* _codecs_jp.so binascii.so sip.so PyQt4app *QtWebKit* _codecs_kr.so bz2.so unicodedata.so Python _codecs_cn.so _codecs_tw.so imageformats zlib.so [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] build/exe*/PyQt4app Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", line 27, in <module> exec code in m.__dict__ File "PyQt4app.py", line 6, in <module> from PyQt4.QtWebKit import(QWebFrame) File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ ImportError: No module named QtNetwork So based on the above, it's pretty clear that QtWebKit and QtNetwork are dependencies of PyQt4.QtWebKit.so, and they were correctly recognized and copied. But when QtWebkit.so is initializing itself during the import, it can't find QtNetwork. I've no idea where it looks. Some env. var.? But what, besides sys.path? On Sun, Nov 17, 2013 at 7:11 PM, Thomas Kluyver <ta...@gm...> wrote: > Hi David, > > What file called QtNetwork is present? Can you post the log from doing the > freeze somewhere? If you add a "from PyQt4 import QtNetwork" in the script, > does the build directory change at all, and does running it produce > different results? > > It might be as simple as defining a hook to copy QtNetwork when QtWebkit > is included. > > Thanks, > Thomas > > > On 17 November 2013 16:55, David Cortesi <dav...@gm...> wrote: > >> Add the following single line to cx_Freeze/samples/PyQt4/PyQt4app.py: >> >> from PyQt4.QtWebKit import(QWebFrame) >> >> The app seems to freeze correctly but when executed it fails to start up: >> >> [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] >> build/exe*/PyQt4app >> Traceback (most recent call last): >> File >> "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", >> line 27, in <module> >> exec code in m.__dict__ >> File "PyQt4app.py", line 6, in <module> >> from PyQt4.QtWebKit import(QWebFrame) >> File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> >> File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ >> ImportError: No module named QtNetwork >> >> The error is happening during execution of the import statement. >> QtNetwork (anyway, something named QtNetwork) is present in the freeze >> package. >> >> >> >> ------------------------------------------------------------------------------ >> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >> Free app hosting. Or install the open source package on any LAMP server. >> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >> _______________________________________________ >> cx-freeze-users mailing list >> cx-...@li... >> https://lists.sourceforge.net/lists/listinfo/cx-freeze-users >> >> > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > |
From: Thomas K. <ta...@gm...> - 2013-11-18 04:27:12
|
What type of files are QtWebkit and QtNetwork where you show them in the build directory, with no extension? I don't think it is copying QtNetwork - I would expect a file called PyQt4.QtNetwork.so. I think this is just a matter of adding a hook. Have a look at the existing examples in the cx_Freeze/hooks.py directory - it should be simple to make one for QtWebkit, and then see if that fixes the problem. Thanks, Thomas On 17 November 2013 20:20, David Cortesi <dav...@gm...> wrote: > Sorry, here is some more detail. Here is the output of the freeze run, > with some "snips" of what I think was irrelevant... > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] python > setup.py build > running build > running build_exe > copying > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/bases/Console > -> build/exe.macosx-10.6-intel-2.7/PyQt4app > copying /Library/Frameworks/Python.framework/Versions/2.7/Python -> > build/exe.macosx-10.6-intel-2.7/Python > writing zip file build/exe.macosx-10.6-intel-2.7/library.zip > > Name File > ---- ---- > m BUILD_CONSTANTS > P PyQt4 > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/__init__.py > m PyQt4.QtCore > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so > m PyQt4.QtGui > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so > m PyQt4.QtWebKit > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so > m PyQt4app__main__ PyQt4app.py > m StringIO > m UserDict > m __builtin__ > > <snip> > > Missing modules: > ? _emx_link imported from os > ? cStringIO imported from encodings.quopri_codec, encodings.uu_codec, > quopri > ? ce imported from os > ? getopt imported from base64, quopri > ? nt imported from os > ? ntpath imported from os > ? org.python.core imported from copy > ? os.path imported from os > ? os2 imported from os > ? os2emxpath imported from os > ? re imported from base64, encodings.idna, posixpath, warnings > ? riscos imported from os > ? riscosenviron imported from os > ? riscospath imported from os > ? subprocess imported from os > This is not necessarily a problem - the modules may not be needed on this > platform. > > copying > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so > -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtCore.so > copying /Library/Frameworks/QtCore.framework/Versions/4/QtCore -> > build/exe.macosx-10.6-intel-2.7/QtCore > copying > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so > -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtGui.so > copying /Library/Frameworks/QtGui.framework/Versions/4/QtGui -> > build/exe.macosx-10.6-intel-2.7/QtGui > copying > /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so > -> build/exe.macosx-10.6-intel-2.7/*PyQt4.QtWebKit.so > <http://PyQt4.QtWebKit.so>* > copying /Library/Frameworks/QtWebKit.framework/Versions/4/QtWebKit -> > build/exe.macosx-10.6-intel-2.7/*QtWebKit* > copying /Library/Frameworks/QtNetwork.framework/Versions/4/QtNetwork -> > build/exe.macosx-10.6-intel-2.7/*QtNetwork* > <snip> > copying /Developer/Applications/Qt/plugins/imageformats/libqsvg.dylib -> > build/exe.macosx-10.6-intel-2.7/imageformats/libqsvg.dylib > copying /Developer/Applications/Qt/plugins/imageformats/libqtga.dylib -> > build/exe.macosx-10.6-intel-2.7/imageformats/libqtga.dylib > copying /Developer/Applications/Qt/plugins/imageformats/libqtiff.dylib -> > build/exe.macosx-10.6-intel-2.7/imageformats/libqtiff.dylib > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] ls > build/exe.macosx-10.6-intel-2.7/ > PyQt4.QtCore.so QtCore _codecs_hk.so > _multibytecodec.so itertools.so > PyQt4.QtGui.so QtGui _codecs_iso2022.so > _struct.so library.zip > PyQt4.QtWebKit.so *QtNetwork* _codecs_jp.so > binascii.so sip.so > PyQt4app *QtWebKit* _codecs_kr.so bz2.so > unicodedata.so > Python _codecs_cn.so _codecs_tw.so > imageformats zlib.so > > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] > build/exe*/PyQt4app > Traceback (most recent call last): > File > "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", > line 27, in <module> > exec code in m.__dict__ > File "PyQt4app.py", line 6, in <module> > from PyQt4.QtWebKit import(QWebFrame) > File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> > File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ > ImportError: No module named QtNetwork > > > So based on the above, it's pretty clear that QtWebKit and QtNetwork are > dependencies of PyQt4.QtWebKit.so, and they were correctly recognized and > copied. But when QtWebkit.so is initializing itself during the import, it > can't find QtNetwork. I've no idea where it looks. Some env. var.? But > what, besides sys.path? > > > > > On Sun, Nov 17, 2013 at 7:11 PM, Thomas Kluyver <ta...@gm...> wrote: > >> Hi David, >> >> What file called QtNetwork is present? Can you post the log from doing >> the freeze somewhere? If you add a "from PyQt4 import QtNetwork" in the >> script, does the build directory change at all, and does running it produce >> different results? >> >> It might be as simple as defining a hook to copy QtNetwork when QtWebkit >> is included. >> >> Thanks, >> Thomas >> >> >> On 17 November 2013 16:55, David Cortesi <dav...@gm...> wrote: >> >>> Add the following single line to cx_Freeze/samples/PyQt4/PyQt4app.py: >>> >>> from PyQt4.QtWebKit import(QWebFrame) >>> >>> The app seems to freeze correctly but when executed it fails to start up: >>> >>> [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] >>> build/exe*/PyQt4app >>> Traceback (most recent call last): >>> File >>> "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", >>> line 27, in <module> >>> exec code in m.__dict__ >>> File "PyQt4app.py", line 6, in <module> >>> from PyQt4.QtWebKit import(QWebFrame) >>> File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> >>> File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ >>> ImportError: No module named QtNetwork >>> >>> The error is happening during execution of the import statement. >>> QtNetwork (anyway, something named QtNetwork) is present in the freeze >>> package. >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >>> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >>> Free app hosting. Or install the open source package on any LAMP server. >>> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >>> >>> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> cx-freeze-users mailing list >>> cx-...@li... >>> https://lists.sourceforge.net/lists/listinfo/cx-freeze-users >>> >>> >> >> >> ------------------------------------------------------------------------------ >> DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps >> OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access >> Free app hosting. Or install the open source package on any LAMP server. >> Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! >> >> http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk >> _______________________________________________ >> cx-freeze-users mailing list >> cx-...@li... >> https://lists.sourceforge.net/lists/listinfo/cx-freeze-users >> >> > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > |
From: Rob R. <r.r...@sc...> - 2013-11-18 07:25:21
|
Hi, What I usually do in these cases, is add two lines in your main Python script (as the very first lines): import code code.InteractiveConsole().interact() This gives you an interactive console from your executable. It allows you to play with your imports a bit and finding the problem, which is more convenient debugging than just running your exe and finding out that it fails. On Mac you'll have to run the actual executable from the command line (which is something like myapp.app/Contents/MacOS/myapp) Regards Rob --------------------------------------------- Rob Reilink, Ph.D Science Applied phone: +31 6 187 26562 e-mail: r.r...@sc... --------------------------------------------- Op 18 nov 2013, om 05:26 heeft Thomas Kluyver het volgende geschreven: > What type of files are QtWebkit and QtNetwork where you show them in the build directory, with no extension? I don't think it is copying QtNetwork - I would expect a file called PyQt4.QtNetwork.so. > > I think this is just a matter of adding a hook. Have a look at the existing examples in the cx_Freeze/hooks.py directory - it should be simple to make one for QtWebkit, and then see if that fixes the problem. > > Thanks, > Thomas > > > On 17 November 2013 20:20, David Cortesi <dav...@gm...> wrote: > Sorry, here is some more detail. Here is the output of the freeze run, with some "snips" of what I think was irrelevant... > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] python setup.py build > running build > running build_exe > copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/bases/Console -> build/exe.macosx-10.6-intel-2.7/PyQt4app > copying /Library/Frameworks/Python.framework/Versions/2.7/Python -> build/exe.macosx-10.6-intel-2.7/Python > writing zip file build/exe.macosx-10.6-intel-2.7/library.zip > > Name File > ---- ---- > m BUILD_CONSTANTS > P PyQt4 /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/__init__.py > m PyQt4.QtCore /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so > m PyQt4.QtGui /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so > m PyQt4.QtWebKit /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so > m PyQt4app__main__ PyQt4app.py > m StringIO > m UserDict > m __builtin__ > > <snip> > > Missing modules: > ? _emx_link imported from os > ? cStringIO imported from encodings.quopri_codec, encodings.uu_codec, quopri > ? ce imported from os > ? getopt imported from base64, quopri > ? nt imported from os > ? ntpath imported from os > ? org.python.core imported from copy > ? os.path imported from os > ? os2 imported from os > ? os2emxpath imported from os > ? re imported from base64, encodings.idna, posixpath, warnings > ? riscos imported from os > ? riscosenviron imported from os > ? riscospath imported from os > ? subprocess imported from os > This is not necessarily a problem - the modules may not be needed on this platform. > > copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtCore.so -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtCore.so > copying /Library/Frameworks/QtCore.framework/Versions/4/QtCore -> build/exe.macosx-10.6-intel-2.7/QtCore > copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtGui.so -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtGui.so > copying /Library/Frameworks/QtGui.framework/Versions/4/QtGui -> build/exe.macosx-10.6-intel-2.7/QtGui > copying /Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/PyQt4/QtWebKit.so -> build/exe.macosx-10.6-intel-2.7/PyQt4.QtWebKit.so > copying /Library/Frameworks/QtWebKit.framework/Versions/4/QtWebKit -> build/exe.macosx-10.6-intel-2.7/QtWebKit > copying /Library/Frameworks/QtNetwork.framework/Versions/4/QtNetwork -> build/exe.macosx-10.6-intel-2.7/QtNetwork > <snip> > copying /Developer/Applications/Qt/plugins/imageformats/libqsvg.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqsvg.dylib > copying /Developer/Applications/Qt/plugins/imageformats/libqtga.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqtga.dylib > copying /Developer/Applications/Qt/plugins/imageformats/libqtiff.dylib -> build/exe.macosx-10.6-intel-2.7/imageformats/libqtiff.dylib > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] ls build/exe.macosx-10.6-intel-2.7/ > PyQt4.QtCore.so QtCore _codecs_hk.so _multibytecodec.so itertools.so > PyQt4.QtGui.so QtGui _codecs_iso2022.so _struct.so library.zip > PyQt4.QtWebKit.so QtNetwork _codecs_jp.so binascii.so sip.so > PyQt4app QtWebKit _codecs_kr.so bz2.so unicodedata.so > Python _codecs_cn.so _codecs_tw.so imageformats zlib.so > > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] build/exe*/PyQt4app > Traceback (most recent call last): > File "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", line 27, in <module> > exec code in m.__dict__ > File "PyQt4app.py", line 6, in <module> > from PyQt4.QtWebKit import(QWebFrame) > File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> > File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ > ImportError: No module named QtNetwork > > > So based on the above, it's pretty clear that QtWebKit and QtNetwork are dependencies of PyQt4.QtWebKit.so, and they were correctly recognized and copied. But when QtWebkit.so is initializing itself during the import, it can't find QtNetwork. I've no idea where it looks. Some env. var.? But what, besides sys.path? > > > > > On Sun, Nov 17, 2013 at 7:11 PM, Thomas Kluyver <ta...@gm...> wrote: > Hi David, > > What file called QtNetwork is present? Can you post the log from doing the freeze somewhere? If you add a "from PyQt4 import QtNetwork" in the script, does the build directory change at all, and does running it produce different results? > > It might be as simple as defining a hook to copy QtNetwork when QtWebkit is included. > > Thanks, > Thomas > > > On 17 November 2013 16:55, David Cortesi <dav...@gm...> wrote: > Add the following single line to cx_Freeze/samples/PyQt4/PyQt4app.py: > > from PyQt4.QtWebKit import(QWebFrame) > > The app seems to freeze correctly but when executed it fails to start up: > > [16:41 ~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4] build/exe*/PyQt4app > Traceback (most recent call last): > File "/Library/Frameworks/Python.framework/Versions/Current/lib/python2.7/site-packages/cx_Freeze-4.3.2-py2.7-macosx-10.6-intel.egg/cx_Freeze/initscripts/Console.py", line 27, in <module> > exec code in m.__dict__ > File "PyQt4app.py", line 6, in <module> > from PyQt4.QtWebKit import(QWebFrame) > File "ExtensionLoader_PyQt4_QtWebKit.py", line 22, in <module> > File "ExtensionLoader_PyQt4_QtWebKit.py", line 14, in __bootstrap__ > ImportError: No module named QtNetwork > > The error is happening during execution of the import statement. QtNetwork (anyway, something named QtNetwork) is present in the freeze package. > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > > ------------------------------------------------------------------------------ > DreamFactory - Open Source REST & JSON Services for HTML5 & Native Apps > OAuth, Users, Roles, SQL, NoSQL, BLOB Storage and External API Access > Free app hosting. Or install the open source package on any LAMP server. > Sign up and see examples for AngularJS, jQuery, Sencha Touch and Native! > http://pubads.g.doubleclick.net/gampad/clk?id=63469471&iu=/4140/ostg.clktrk_______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users |
From: David C. <dav...@gm...> - 2013-11-18 15:45:02
|
Thank you, Rob. I must point out that we are looking at the very simplest possible test case, the PyQt4app.py sample from the cx_freeze/samples distribution. To this add only the single line, "from PyQt4.QtWebKit import QWebFrame". (I expect "import PyQt4.QtWebkit" would do it; I just copied a line from my app into the sample file.) I included the result of executing the freeze output from the command line. It dies executing the import statement, so there would be no opportunity to open a console or display any more info. I will look further at what Thomas K. suggests, making sure it is copying actual dylibs and maybe using a hook. On Sun, Nov 17, 2013 at 11:07 PM, Rob Reilink <r.r...@sc...>wrote: > Hi, > > What I usually do in these cases, is add two lines in your main Python > script (as the very first lines): > > import code > code.InteractiveConsole().interact() > > > |
From: David C. <dav...@gm...> - 2013-11-18 21:19:46
|
On Sun, Nov 17, 2013 at 8:26 PM, Thomas Kluyver <ta...@gm...> wrote: > What type of files are QtWebkit and QtNetwork where you show them in the > build directory, with no extension? > Well, that part is easy to answer :0 [~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4/build/exe.macosx-10.6-intel-2.7] ls PyQt4.QtCore.so QtCore _codecs_hk.so _multibytecodec.so itertools.so PyQt4.QtGui.so QtGui _codecs_iso2022.so _struct.so library.zip PyQt4.QtWebKit.so QtNetwork _codecs_jp.so binascii.so sip.so PyQt4app QtWebKit _codecs_kr.so bz2.so unicodedata.so Python _codecs_cn.so _codecs_tw.so imageformats zlib.so [~/Downloads/cx_Freeze-4.3.2/cx_Freeze/samples/PyQt4/build/exe.macosx-10.6-intel-2.7] file Qt* QtCore: Mach-O 64-bit dynamically linked shared library x86_64 QtGui: Mach-O 64-bit dynamically linked shared library x86_64 QtNetwork: Mach-O 64-bit dynamically linked shared library x86_64 QtWebKit: Mach-O 64-bit dynamically linked shared library x86_64 > I don't think it is copying QtNetwork - I would expect a file called > PyQt4.QtNetwork.so. > There is a file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/QtNetwork.so I manually copied it into the freeze folder as QtNetwork.so and also as PyQt4.QtNetwork.so, but no change in "ImportError: No module named QtNetwork" I think this is just a matter of adding a hook. Have a look at the existing > examples in the cx_Freeze/hooks.py directory - it should be simple to make > one for QtWebkit, and then see if that fixes the problem. > Ok, I note that pyinstaller has its type of hook for PyQt4.QtWebKit which says, hiddenimports = ["sip", "PyQt4.QtCore", "PyQt4.QtGui", "PyQt4.QtNetwork", "PyQt4._qt"] So looking at hooks.py, and copying from other load_PyQt4_* functions -- def load_PyQt4_QtWebKit(finder, module): name, QtCore = _qt_implementation(module) finder.IncludeModule("%s.QtNetwork" % name) finder.IncludeModule("%s._qt" % name) finder.IncludeModule("%s.QtGui" % name) finder.IncludeModule("%s.QtCore" % name) finder.IncludeModule("sip") Does that look right? Also, to make this effective, I need to modify hooks.py in the cx_freeze.egg in site-packages, no? I don't suppose there is syntax for putting this into setup.py, for testing purposes? Thanks for your time, Dave Cortesi |
From: Thomas K. <ta...@gm...> - 2013-11-18 21:28:18
|
Hi Dave, On 18 November 2013 13:19, David Cortesi <dav...@gm...> wrote: > There is a file > /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyQt4/QtNetwork.so > > I manually copied it into the freeze folder as QtNetwork.so and also as > PyQt4.QtNetwork.so, but no change in "ImportError: No module named > QtNetwork" > That wouldn't work by itself - cx_Freeze creates a Python module inside library.zip which can load the extension. > I think this is just a matter of adding a hook. Have a look at the >> existing examples in the cx_Freeze/hooks.py directory - it should be simple >> to make one for QtWebkit, and then see if that fixes the problem. >> > > Ok, I note that pyinstaller has its type of hook for PyQt4.QtWebKit which > says, > > hiddenimports = ["sip", "PyQt4.QtCore", "PyQt4.QtGui", "PyQt4.QtNetwork", > "PyQt4._qt"] > > So looking at hooks.py, and copying from other load_PyQt4_* functions -- > > def load_PyQt4_QtWebKit(finder, module): > name, QtCore = _qt_implementation(module) > finder.IncludeModule("%s.QtNetwork" % name) > finder.IncludeModule("%s._qt" % name) > finder.IncludeModule("%s.QtGui" % name) > finder.IncludeModule("%s.QtCore" % name) > finder.IncludeModule("sip") > > Does that look right? > It does. :-) > Also, to make this effective, I need to modify hooks.py in the > cx_freeze.egg in site-packages, no? > That's right. > I don't suppose there is syntax for putting this into setup.py, for > testing purposes? > At a pinch, you could monkeypatch it into hooks - i.e. define it in your setup.py, and then set: cx_Freeze.hooks.load_PyQt4_QtWebKit = load_PyQt4_QtWebKit I think that should work. You'll need appropriate imports in your setup.py, of course. Thanks, Thomas |
From: David C. <dav...@gm...> - 2013-11-19 19:05:44
|
Adding the code below to hooks.py made the sample PyQt4app (with added import of QtWebkit) freeze properly and execute. Also my fairly complex PyQt4 app also freeze'd correctly and appears to execute. So I can recommend this hook. On Mon, Nov 18, 2013 at 1:19 PM, I <dav...@gm...> wrote: > > def load_PyQt4_QtWebKit(finder, module): > name, QtCore = _qt_implementation(module) > finder.IncludeModule("%s.QtNetwork" % name) > finder.IncludeModule("%s._qt" % name) > finder.IncludeModule("%s.QtGui" % name) > finder.IncludeModule("%s.QtCore" % name) > finder.IncludeModule("sip") > Thanks all for your assistance. Dave Cortesi |
From: Thomas K. <ta...@gm...> - 2013-11-19 19:33:49
|
On 19 November 2013 11:05, David Cortesi <dav...@gm...> wrote: > Adding the code below to hooks.py made the sample PyQt4app (with added > import of QtWebkit) freeze properly and execute. Also my fairly complex > PyQt4 app also freeze'd correctly and appears to execute. So I can > recommend this hook. Thanks David. Do you have time to make a pull request at https://bitbucket.org/anthony_tuininga/cx_freeze ? If not, I can do it. Best wishes, Thomas |
From: David C. <dav...@gm...> - 2013-11-19 19:58:21
|
Please do it for the hook code. Also the other bit of code, to test, when a dependency is a relative path in OSX, if it might be found in [/System]/Library/Frameworks. That was necessary to making my app freeze. However looking at existing pull requests, some of those also are making special cases for relative paths, and in the same general area. I don't think there's a conflict but look carefully. On Tue, Nov 19, 2013 at 11:33 AM, Thomas Kluyver <ta...@gm...> wrote: > On 19 November 2013 11:05, David Cortesi <dav...@gm...> wrote: > >> Adding the code below to hooks.py made the sample PyQt4app (with added >> import of QtWebkit) freeze properly and execute. Also my fairly complex >> PyQt4 app also freeze'd correctly and appears to execute. So I can >> recommend this hook. > > > Thanks David. Do you have time to make a pull request at > https://bitbucket.org/anthony_tuininga/cx_freeze ? If not, I can do it. > > Best wishes, > Thomas > > > ------------------------------------------------------------------------------ > Shape the Mobile Experience: Free Subscription > Software experts and developers: Be at the forefront of tech innovation. > Intel(R) Software Adrenaline delivers strategic insight and game-changing > conversations that shape the rapidly evolving mobile landscape. Sign up > now. > http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk > _______________________________________________ > cx-freeze-users mailing list > cx-...@li... > https://lists.sourceforge.net/lists/listinfo/cx-freeze-users > > |
From: Thomas K. <ta...@gm...> - 2013-11-20 00:37:44
|
On 19 November 2013 11:57, David Cortesi <dav...@gm...> wrote: > Please do it for the hook code. > OK, here we are: https://bitbucket.org/takluyver/cx_freeze/pull-request/4/add-hook-for-qtwebkit-module/diff I've set you as the author of the commit, so you'll get credit in the commit log. > Also the other bit of code, to test, when a dependency is a relative path > in OSX, if it might be found in [/System]/Library/Frameworks. That was > necessary to making my app freeze. > > However looking at existing pull requests, some of those also are making > special cases for relative paths, and in the same general area. I don't > think there's a conflict but look carefully. > I think I'll have to let a Mac user work out that stuff, as I don't know enough about it. Thomas |
From: Thomas K. <ta...@gm...> - 2013-11-20 02:07:44
|
On 19 November 2013 16:37, Thomas Kluyver <ta...@gm...> wrote: > OK, here we are: > https://bitbucket.org/takluyver/cx_freeze/pull-request/4/add-hook-for-qtwebkit-module/diff > And I was doing it too quickly, and set the PR to my own repository by mistake. Here's the correct one: https://bitbucket.org/anthony_tuininga/cx_freeze/pull-request/36/add-hook-for-qtwebkit-module/diff |