[Pythonmac-SIG] AppKit ImportError (was py2app: ImportError)

Sean Robinson sean.robinson at sccmail.maricopa.edu
Mon Oct 10 16:44:19 CEST 2011


On 10/08/2011 07:36 AM, Ronald Oussoren wrote:
>
> On 6 Oct, 2011, at 22:35, Sean Robinson wrote:
>
>> On 10/06/2011 07:54 AM, Ronald Oussoren wrote:
>>>
>>>> On 6 Oct, 2011, at 16:51, Sean Robinson wrote:
>>>>
>>>>
>>>> Yes, my actual project had the same structure with a module and package with the same name.  This had not been a problem elsewhere, but I can see why it does not work with py2app.  So, I'll make sure to avoid a name collision between my init module and all packages, which sounds like a good practice to follow anyway.
>>>>
>>>> Thank you for your help.  My bundled app is running.  Now to find why AppKit isn't importing…
>>>
>>> I've just pushed a partial fix to the repository, this fixes the issue for regular builds but not yet for '--alias' builds.  Your code was very helpful in finding the cause of the issue, and while writing a testcase for this problem.
>>>
>>> W.r.t. to AppKit not importing, does it import outside of the app bundle?
>>>
>>
>> My script works as 'python quot.py' and now I am trying to bundle it up for my users to be able to click and run.  So, yes, from Terminal, AppKit imports correctly and the AppKit.NSSound module works well.
>>
>> Looking at the various logs reported by py2app, it does not appear that the needed dirs are added to the app bundle's sys.path.  The follow process creates a failing AppKit import from the app bundle for me and shows different sys.path for 'python quot.py' vs app bundle launch.  I can provide much more detail (including modulegraph debug output) if requested, but the following steps in a Terminal window can reproduce the error for me every time.
>>
>> $ echo "import sys">>  quot.py
>> $ echo "print sys.path">>  quot.py
>> $ echo "import AppKit">>  quot.py
>> $ cat quot.py
>> import sys
>> print sys.path
>> import AppKit
>>
>> $ py2applet --make-setup quot.py
>> Wrote setup.py
>>
>> $ python quot.py
>> NOTE: list of dirs in path
>>
>> $ rm -rf build dist&&  python setup.py py2app
>> running py2app
>>
>> $ open -a quot
>> NOTE: Error window appears and output is captured in Console which can be condensed to "ImportError: No module named AppKit".
>>
>>
>> I believe I can overcome this error by finding the right path(s) to append to the app bundle's sys.path, but I'm surprised that py2app does not do this automagically.
>
> py2app should do this automaticly.  What version of python do you use? Is that a custom install or the system version of python? And finally, which OSX version are you using?
>

This is on OSX 10.6.8, using the system version of Python 2.6.1.  The 
only non-standard packages/modules are py2app (0.6.4 pre-release and its 
requirements) installed local to the user account.  I am developing as 
vanilla as I can get.

-- 
Sean Robinson
Laboratory Technician
Physics Astronomy Geology
sean.robinson at sccmail.maricopa.edu


More information about the Pythonmac-SIG mailing list