Also, are you trying to use the arg1 protocol or the kwargs protocol in your application?
On Thu, Jun 21, 2012 at 3:58 PM, Daniel Hyams <[email protected]> wrote: > This is probably the blind leading the blind here. > > To me, your Analysis call is a little strange. Mine looks like this: > > a = Analysis([catpath(HOMEPATH,'support','_mountzlib.py'), > catpath(HOMEPATH,'support','useUnicode.py'), > catpath('..','..',srcdir,'src','main.py')], > pathex=[srcpath]) > > where "catpath" is just a little function that I wrote to concatenate > multiple strings into one path. Note that I only have one of my own py > files in there, and that's it. No hiddenimports, and no hookspath; I put > my custom hooks just alongside pyinstallers; I'm not sure if that makes a > difference or not. > > Also, are you seeing a print statement during the build that says > "wx.lib.pubsub: adding arg1 protocol path"? If not, then the hooks that I > gave you are not getting called. > > > > On Thu, Jun 21, 2012 at 3:31 PM, Tom Tijerina <[email protected]>wrote: > >> I very much appreciate the very quick reply, I tried using what you have >> and it still didn't work and gave me the same error. I'm assuming I've done >> something wrong. >> >> My 'startme.spec' file is below >> ----------------------------------------- >> # -*- mode: python -*- >> a = Analysis(['C:\\Documents and Settings\\Tom\\Desktop\\ToPy >> v0.001\\startme.py', >> 'C:\\Documents and Settings\\Tom\\Desktop\\ToPy v0.001\\irep.py', >> 'C:\\Documents and >> Settings\\Tom\\Desktop\\ToPy v0.001\\webpro.py'], >> pathex=['C:\\DOCUME~1\\Tom\\Desktop\\PYINST~1'], >> hiddenimports=['wx.lib.pubsub.core', >> 'wx.lib.pubsub.setuparg1'], >> hookspath='C:\\Documents and >> Settings\\Tom\\Desktop\\pyinstaller-pyinstaller-2145d84\\newhooks\\') >> pyz = PYZ(a.pure) >> exe = EXE(pyz, >> a.scripts, >> a.binaries, >> a.zipfiles, >> a.datas, >> name=os.path.join('dist', 'startme.exe'), >> debug=False, >> strip=None, >> upx=True, >> console=True ) >> ------------------------------------------------- >> >> >> and the command im running (as startme.spec is in the same folder) is >> simply >> ---------------------------- >> python pyinstaller.py startme.spec >> ----------------------------- >> >> Am I missing something? I've got that sneaky something simple is missing >> feeling. I keep trying the same few things over and over again and all its >> doing is making me realize first hand the definition of insanity. I don't >> really know or understand wx or pyinstaller enough to know where to even >> really start. I'm still just learning python. >> >> Thanks again for your help. >> >> >> On Thu, Jun 21, 2012 at 3:05 PM, Daniel Hyams <[email protected]> wrote: >> >>> While I'm not proud of this (it's a complete hack), the following seems >>> to work for me. This is with the pubsub included with wxpython 2.8.11 and >>> later, and you must import in your application like this: >>> >>> from wx.lib.pubsub import setuparg1 >>> from wx.lib.pubsub import pub as Publisher >>> >>> I can only verify that this works with the arg1 protocol; it probably >>> will with kwargs as well, but I have not verified. >>> >>> Anyway, here are the two hooks: >>> >>> hook-wx.lib.pubsub.core.py: >>> ------------------------- cut here ---- >>> import os >>> import sys >>> >>> def hook(mod): >>> pth = str(mod.__path__[0]) >>> if os.path.isdir(pth): >>> # if the user imported setuparg1, this is detected by the >>> hook-wx.lib.pubsub.setuparg1.py hook. That >>> # hook sets sys.wxpubsub to "arg1", and we set the appropriate >>> path here. >>> protocol = getattr(sys,'wxpubsub','kwargs') >>> print "wx.lib.pubsub: Adding %s protocol path"%protocol >>> mod.__path__.append(os.path.normpath(os.path.join(pth, protocol))) >>> >>> return mod >>> ------------------------- cut here ---- >>> >>> And this for hook-wx.lib.pubsub.setuparg1.py: >>> >>> ------------------------- cut here ---- >>> import os >>> import sys >>> >>> # if the user imports setuparg1, we just set an attribute in sys that >>> allows us to later find out >>> # about this. >>> sys.wxpubsub = "arg1" >>> >>> ------------------------- cut here ---- >>> >>> I told you it was a hack! :O Maybe the pyinstaller folks who know what >>> they are doing can look at this and determine the correct solution. >>> >>> >>> On Thu, Jun 21, 2012 at 2:48 PM, Tom <[email protected]> wrote: >>> >>>> Was this ever resolved, I'm having trouble as well. My google-fu has >>>> failed me the last couple days. I know its something simple I don't really >>>> see anything in the last 6-8 months but I still cant get it to work. >>>> >>>> I'm using: >>>> XP Pro SP3 >>>> Python V 2.7.3 >>>> wx.version returns '2.8.12.1 (msw-ansi)' >>>> I have tried both stable pyinstaller and development one from yesterday >>>> (possible version: 2145d84) >>>> >>>> When I switched from importing Publisher to >>>> >>>> I've even tried including this hook below: >>>> import os >>>> >>>> def hook(mod): >>>> pth = str(mod.__path__[0]) >>>> if os.path.isdir(pth): >>>> mod.__path__.append(os.path.normpath(os.path.join(pth, >>>> 'kwargs'))) >>>> return mod >>>> >>>> After changing the publisher import: >>>> from wx.lib.pubsub import setupkwargs >>>> from wx.lib.pubsub import setuparg1 >>>> from wx.lib.pubsub import pub as Publisher >>>> (I have tried every combination of the first two, with both, without >>>> one or the other, and with only import Publisher..) >>>> With one or the other I seem to get: >>>> >>>> C:\Documents and Settings\Tom>"C:\Documents and >>>> Settings\Tom\Desktop\PyPackagers >>>> \pyinstaller-pyinstaller-2145d84\dist\startme.exe" >>>> Traceback (most recent call last): >>>> File "<string>", line 7, in <module> >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\Py >>>> Installer\loader\iu.py", line 431, in importHook >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\Py >>>> Installer\loader\iu.py", line 480, in doimport >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\bu >>>> ild\pyi.win32\startme\out00-PYZ.pyz\wx.lib.pubsub.pub", line 24, in >>>> <module> >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\Py >>>> Installer\loader\iu.py", line 386, in importHook >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\Py >>>> Installer\loader\iu.py", line 480, in doimport >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\bu >>>> ild\pyi.win32\startme\out00-PYZ.pyz\wx.lib.pubsub.core.listener", line >>>> 13, in <m >>>> odule> >>>> File "C:\Documents and >>>> Settings\Tom\Desktop\pyinstaller-pyinstaller-2145d84\Py >>>> Installer\loader\iu.py", line 409, in importHook >>>> ImportError: No module named listenerimpl >>>> >>>> >>>> >>>> >>>> On Tuesday, February 7, 2012 7:12:55 PM UTC-5, marc wrote: >>>>> >>>>> Hi all; >>>>> >>>>> I can see this has been discussed before in previous emails, but after >>>>> reading them, I still cannot resolve this issue. >>>>> I am trying to use pyinstaller to build a Windows executable - where >>>>> code makes use of : >>>>> >>>>> wx.lib.pubsub import Publisher >>>>> >>>>> ... allowing the model to notify the controller that a change has >>>>> occurred. >>>>> >>>>> However, when the executable is run, I get a "ImportError: cannot >>>>> import name Publisher" error. >>>>> I've tried using all the different imports mentioned on various >>>>> threads, most work from Python, but fail to import once run from a >>>>> Windows executable built with pyinstaller >>>>> >>>>> Could someone please let me know - currently, what's the best work >>>>> around for this issue? I'd really like to get this resolved. >>>>> >>>>> Many thanks for your help, >>>>> Marc >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "PyInstaller" group. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msg/pyinstaller/-/9aFhWy6-PcoJ. >>>> >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]. >>>> For more options, visit this group at >>>> http://groups.google.com/group/pyinstaller?hl=en. >>>> >>> >>> >>> >>> -- >>> Daniel Hyams >>> [email protected] >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "PyInstaller" group. >>> To post to this group, send email to [email protected]. >>> To unsubscribe from this group, send email to >>> [email protected]. >>> For more options, visit this group at >>> http://groups.google.com/group/pyinstaller?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "PyInstaller" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/pyinstaller?hl=en. >> > > > > -- > Daniel Hyams > [email protected] > -- Daniel Hyams [email protected] -- You received this message because you are subscribed to the Google Groups "PyInstaller" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/pyinstaller?hl=en.
