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

fsteele at mindspring.com fsteele at mindspring.com
Tue May 21 16:04:44 CEST 2013


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.

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


More information about the Pythonmac-SIG mailing list