That was it -- Thanks! I built a new Python 2.7.4 virtual environment this
morning, and code built with gives 10.6 as the minimum target. I'm not sure how
my 2.7.3 environment got built with 10.8 only.
Best,
Frank
On May 22, 2013, at 4:15 AM, Ronald Oussoren wrote:
>
> On 21 May, 2013, at 16:04, fste...@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
>> _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
>> import AppKit
>> File "AppKit/__init__.pyc", line 43, in
>> File "AppKit/_AppKit.pyc", line 14, in
>> 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