In article <4e49b196.7050...@gmail.com>,
 "precipice.development" <precipice.developm...@gmail.com> wrote:
> ImportError: 
> dlopen(/Users/jph/Public/hello.app/Contents/Resources/lib/python2.7/lib-dynloa
> d/_mysql.so, 
> 2): Symbol not found: _strnlen
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      Referenced from: 
> /Users/jph/Public/hello.app/Contents/MacOS/../Frameworks/libmysqlclient_r.16.d
> ylib
> 
> Background
> Did a Hello World type test app on Lion.  Used py2app to bundle it into 
> an OSX app.  Works fine.  Copied over to a fresh install of Snow Leopard 
> 10.6.8 and works fine.  Bundle is standalone.
> 
> Now, added MySQLdb and made a database connection on Lion - works as 
> expected - result returned from simple query. MySQL database is on a 
> third machine.  Now copied bundle over to Snow Leopard machine (again a 
> fresh install) and received the following error:
> 
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]    Traceback (most 
> recent call last):
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      File 
> "/Users/jph/Public/hello.app/Contents/Resources/__boot__.py", line 57, 
> in <module>
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]        _run('hello.py')
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      File 
> "/Users/jph/Public/hello.app/Contents/Resources/__boot__.py", line 54, 
> in _run
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]        execfile(path, 
> globals(), globals())
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      File 
> "/Users/jph/Public/hello.app/Contents/Resources/hello.py", line 9, in 
> <module>
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]        import MySQLdb
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      File 
> "MySQLdb/__init__.pyc", line 19, in <module>
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]    ImportError: 
> dlopen(/Users/jph/Public/hello.app/Contents/Resources/lib/python2.7/lib-dynloa
> d/_mysql.so, 
> 2): Symbol not found: _strnlen
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      Referenced from: 
> /Users/jph/Public/hello.app/Contents/MacOS/../Frameworks/libmysqlclient_r.16.d
> ylib
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      Expected in: 
> /usr/lib/libSystem.B.dylib
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]     in 
> /Users/jph/Public/hello.app/Contents/MacOS/../Frameworks/libmysqlclient_r.16.d
> ylib
> 8/15/11 4:30:09 PM    hello[716]    hello Error
> 8/15/11 4:30:10 PM    com.apple.launchd.peruser.501[102]    
> ([0x0-0x2e02e].org.pythonmac.unspecified.hello[716]) Exited with exit 
> code: 255
> 
> The key line seems to be ImportError: 
> dlopen(/Users/jph/Public/hello.app/Contents/Resources/lib/python2.7/lib-dynloa
> d/_mysql.so, 
> 2): Symbol not found: _strnlen
> 8/15/11 4:30:08 PM    
> [0x0-0x2e02e].org.pythonmac.unspecified.hello[716]      Referenced from: 
> /Users/jph/Public/hello.app/Contents/MacOS/../Frameworks/libmysqlclient_r.16.d
> ylib
> 
> Python on Lion is from MacPorts.
> 
> Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
> [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)] on 
> darwin
> Type "help", "copyright", "credits" or "license" for more information.
> 
> /opt/local/bin/python: Mach-O 64-bit executable x86_64
> 
> MySQLdb is also from MacPorts
> 
> mysql5/mysql/libmysqlclient.16.dylib: Mach-O 64-bit dynamically linked 
> shared library x86_64
> mysql5/mysql/libmysqlclient_r.16.dylib: Mach-O 64-bit dynamically linked 
> shared library x86_64
> Py2App script
> 
> setup.py
> from setuptools import setup
> 
> setup(
>              app = ['hello.py'],
>              options = {
>                              'py2app': {
>                                          'argv_emulation': 0,
>                                          #'plist': {
>                                                    #plist'LSPrefersPPC': 
> False,
>                                          #},
>                                          'includes': ['PySide.QtCore', 
> 'PySide.QtGui', 'PySide.QtWebKit', 'PySide.QtNetwork', 'MySQLdb'],
>                                          'site_packages': 1
>                                        }
>                      },
>                      data_files = ['copying.txt'],
>                      setup_requires = ['py2app'],
>                      )
> 
> Does anyone have any ideas of how to correct this.

On 10.7, did you build all of the installed MacPorts MySQL packages with 
MACOSX_DEPLOYMENT_TARGET=10.6 and the 10.6 SDK? (I'm not sure how well 
that is supported with MacPorts.)  It's always dicey building something 
on release n (10.7 in this case) and using it on release n-1 (10.6) 
unless you use the appropriate SDK and deployment target.   It is 
generally safe to do the reverse, though: build on 10.6 to deploy on 
10.7.

-- 
 Ned Deily,
 n...@acm.org

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to