[Pythonmac-SIG] Py2app-built app giving error 255 on loading AppKit?

Ronald Oussoren ronaldoussoren at mac.com
Wed May 22 10:15:41 CEST 2013


On 21 May, 2013, at 16:04, fsteele at mindspring.com wrote:

> I've built an app with Py2app. It runs as expected on my development machine, but on machines (10.7.5 and 10.8.2, at least) without a development environment, I get:
> 
> testmini1:~ administrator$ /Users/administrator/Desktop/EasySetup.app/Contents/MacOS/EasySetup ; exit;
> Traceback (most recent call last):
>  File "/Users/administrator/Desktop/EasySetup.app/Contents/Resources/__boot__.py", line 43, in <module>
>    _run()
>  File "/Users/administrator/Desktop/EasySetup.app/Contents/Resources/__boot__.py", line 38, in _run
>    exec(compile(source, path, 'exec'), globals(), globals())
>  File "/Users/administrator/Desktop/EasySetup.app/Contents/Resources/EasySetup.py", line 13, in <module>
>    import AppKit
>  File "AppKit/__init__.pyc", line 43, in <module>
>  File "AppKit/_AppKit.pyc", line 14, in <module>
>  File "AppKit/_AppKit.pyc", line 10, in __load
> ImportError: dlopen(/Users/administrator/Desktop/EasySetup.app/Contents/Resources/lib/python2.7/lib-dynload/AppKit/_AppKit.so, 2): Symbol not found: _OBJC_CLASS_$_NSObject
>  Referenced from: /Users/administrator/Desktop/EasySetup.app/Contents/Resources/lib/python2.7/lib-dynload/AppKit/_AppKit.so
>  Expected in: /usr/lib/libobjc.A.dylib
> in /Users/administrator/Desktop/EasySetup.app/Contents/Resources/lib/python2.7/lib-dynload/AppKit/_AppKit.so
> 2013-05-21 09:19:44.502 EasySetup[393:707] EasySetup Error
> 
> The _AppKit.so file referenced is in the location referenced. I've deleted /build and /dist and rebuilt the app.

It is odd that the problem occurs on all machines without development tools. What's the deployment target of the application? You can check the actual deployment target in binaries (such as _AppKit.so) using "otool -vl FILENAME", look for 'LC_VERSION_MIN_MACOSX'. Having a too high deployment target could explain why the app doesn't work on 10.7, but not why it doesn't work on 10.8 machines without devtools.

Ronald

> 
> My setup.py:
> 
> from setuptools import setup
> 
> APP = ['EasySetup.py']
> DATA_FILES = ['EasySetup/MainMenu.xib', 'loggers.py', 'MacTools.py', 'create_corplocaladministrator-1.0.pkg', 'macepoprodagentinstall.sh', 'corp-logo.png']
> OPTIONS = {'argv_emulation': False, 'iconfile':'EasySetup.icns'}
> 
> setup(
>        app=APP,
>        data_files=DATA_FILES,
>        install_requires=["pyobjc"],
>        options={'py2app': OPTIONS},
>        setup_requires=['py2app'],
> )
> 
> 
> I'm using virtualenv, where "yolk -list" gives:
> 
> python          - 2.7.3        - active development (/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload)
> altgraph        - 0.10.2       - active 
> beautifulsoup4  - 4.1.3        - active 
> macholib        - 1.5.1        - active 
> modulegraph     - 0.10.4       - active 
> pexpect         - 2.4          - active 
> pip             - 1.3.1        - active 
> py2app          - 0.7.3        - non-active 
> pyobjc-core     - 2.5.1        - active 
> pyobjc-framework-Accounts - 2.5.1        - active 
> pyobjc-framework-AddressBook - 2.5.1        - active 
> pyobjc-framework-AppleScriptKit - 2.5.1        - active 
> pyobjc-framework-AppleScriptObjC - 2.5.1        - active 
> pyobjc-framework-Automator - 2.5.1        - active 
> pyobjc-framework-CFNetwork - 2.5.1        - active 
> pyobjc-framework-CalendarStore - 2.5.1        - active 
> pyobjc-framework-Cocoa - 2.5.1        - active 
> pyobjc-framework-Collaboration - 2.5.1        - active 
> pyobjc-framework-CoreData - 2.5.1        - active 
> pyobjc-framework-CoreLocation - 2.5.1        - active 
> pyobjc-framework-CoreText - 2.5.1        - active 
> pyobjc-framework-DictionaryServices - 2.5.1        - active 
> pyobjc-framework-EventKit - 2.5.1        - active 
> pyobjc-framework-ExceptionHandling - 2.5.1        - active 
> pyobjc-framework-FSEvents - 2.5.1        - active 
> pyobjc-framework-InputMethodKit - 2.5.1        - active 
> pyobjc-framework-InstallerPlugins - 2.5.1        - active 
> pyobjc-framework-InstantMessage - 2.5.1        - active 
> pyobjc-framework-LatentSemanticMapping - 2.5.1        - active 
> pyobjc-framework-LaunchServices - 2.5.1        - active 
> pyobjc-framework-Message - 2.5.1        - active 
> pyobjc-framework-PreferencePanes - 2.5.1        - active 
> pyobjc-framework-PubSub - 2.5.1        - active 
> pyobjc-framework-QTKit - 2.5.1        - active 
> pyobjc-framework-Quartz - 2.5.1        - active 
> pyobjc-framework-ScreenSaver - 2.5.1        - active 
> pyobjc-framework-ScriptingBridge - 2.5.1        - active 
> pyobjc-framework-SearchKit - 2.5.1        - active 
> pyobjc-framework-ServerNotification - 2.5.1        - active 
> pyobjc-framework-ServiceManagement - 2.5.1        - active 
> pyobjc-framework-Social - 2.5.1        - active 
> pyobjc-framework-SyncServices - 2.5.1        - active 
> pyobjc-framework-SystemConfiguration - 2.5.1        - active 
> pyobjc-framework-WebKit - 2.5.1        - active 
> pyobjc          - 2.5.1        - active 
> requests        - 1.2.0        - active 
> setuptools      - 0.6c11       - active 
> wsgiref         - 0.1.2        - active development (/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7)
> yolk            - 0.4.3        - active 
> 
> There are so many threads in play, I'm not sure which to yank on first. Does anybody see anything that rings any alarm bells? Any suggestions on further investigation?
> 
> Thanks!
> Frank
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> http://mail.python.org/mailman/listinfo/pythonmac-sig
> unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG



More information about the Pythonmac-SIG mailing list