Using install_name_tool was why I asked previously about where ‘Python’ was located. :-)
It was in so many locations that thought would try the traditional build first. I don’t have time to look at separate log right this minute, but can you send me from the Makefile generated when doing the —enable-framework what the various CFLAGS, LDFLAGS, LDLIBS variables in the Makefile were. The problem with it still picking up the wrong framework in that case has been an issue years ago on older MacOS X and as far as known was because the Python installations were broken in the way they setup framework linking. Never did find the exact reason and switching to the -L/-l style linking instead of framework linking fixed it, and why that is now the default. For you though that doesn’t work. :-( Thanks. Graham > On 15 Apr 2016, at 9:09 PM, Stephen Gaffney <[email protected]> wrote: > > Thank you, yes: using both the --with-python and --enable-framework flags > were necessary to resolve the Python library (albeit to the system Python > library, but perhaps that doesn't matter?). > > otool output without --enable-framework: > @rpath/Python (compatibility version 2.7.0, current version 2.7.0) > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version > 1226.10.1) > > /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation > (compatibility version 150.0.0, current version 1258.1.0) > otool output with --enable-framework: > /System/Library/Frameworks/Python.framework/Versions/2.7/Python > (compatibility version 2.7.0, current version 2.7.10) > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version > 1226.10.1) > > /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation > (compatibility version 150.0.0, current version 1258.1.0) > Incidentally, otool shows the @rpath/Python line for the various Canopy > 'Python' library files. > @rpath/Python (compatibility version 2.7.0, current version 2.7.0) > /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version > 159.1.0) > > Back to mod_wsgi-express, I found that using install_name_tool to add a > Canopy directory containing 'Python' prevents the 'image not found' error. > (Other errors crop up in the log file though, attached.) > install_name_tool -add_rpath $HOME/Library/Enthought/Canopy_64bit/User/ \ > $HOME/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/mod_wsgi-4.5.2-py2.7-macosx-10.6-x86_64.egg/mod_wsgi/server/mod_wsgi-py27.so > > I'm happy to go without mod_wsgi-express, but if it's at all helpful to you > to get to the bottom of Canopy issues, I'm happy to try other things. > > Thanks a lot for your help. > > Stephen > > > > On Thu, Apr 14, 2016 at 11:58 PM, Graham Dumpleton > <[email protected] <mailto:[email protected]>> wrote: > Rather than using the ‘pip’ installable mod_wsgi, you might want to try older > way of building it from source code. > > Grab down latest source tar ball from: > > https://github.com/GrahamDumpleton/mod_wsgi/releases > <https://github.com/GrahamDumpleton/mod_wsgi/releases> > > When unpacked, build it using: > > ./configure —with-python=/some/path/to/canopy/bin/python > make > > Before trying to install it, run: > > otool -L src/server/.libs/mod_wsgi.so > > If that doesn’t show the Python library resolving, try instead: > > make distclean > ./configure —with-python=/some/path/to/canopy/bin/python > --enable-framework > make > > Run otool again. Does that then show it as resolving? > > Graham > >> On 14 Apr 2016, at 10:13 PM, SGaffney <[email protected] >> <mailto:[email protected]>> wrote: >> >> Thank you for the very fast response—excuse my slowness, caused by not >> setting up email alerts properly. >> >> Starting with last question first, the Python library/executable files: >> >> 1. Python / 'libpython2.7.so <http://libpython2.7.so/>' >> ====================== >> >> $ find /Applications/Canopy.app -name Python -print >> /Applications/Canopy.app/Contents/Python >> /Applications/Canopy.app/Contents/Resources/Python.app/Contents/MacOS/Python >> /Applications/Canopy.app/Contents/Resources/PythonNoDock.app/Contents/MacOS/Python >> /Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/Python >> /Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/Resources/Python.app/Contents/MacOS/Python >> /Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/Resources/PythonNoDock.app/Contents/MacOS/Python >> *items 1,4: Mach-O 64-bit dynamically linked shared library x86_64 >> *items 2,3,5,6: Mach-O 64-bit executable x86_64 >> >> Item 1 is the source file for the following symlinks: >> ~/Library/Enthought//Canopy_64bit/User/Python >> ~/Library/Enthought//Canopy_64bit/System/Python >> ~/Library/Enthought//Canopy_64bit/User/lib/libpython2.7.dylib >> ~/Library/Enthought//Canopy_64bit/System/lib/libpython2.7.dylib >> >> Item 1 otool output: >> Mach header >> magic cputype cpusubtype caps filetype ncmds sizeofcmds >> flags >> MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 12 1656 >> NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS >> >> 4 additional 'Python' executables in ~ >> -------------------------------------------------- >> ~/Library/Enthought//Canopy_64bit/User/Resources/Python.app/Contents/MacOS/Python >> ~/Library/Enthought//Canopy_64bit/System/Resources/Python.app/Contents/MacOS/Python >> ~/Library/Enthought//Canopy_64bit/User/Resources/PythonNoDock.app/Contents/MacOS/Python >> ~/Library/Enthought//Canopy_64bit/System/Resources/PythonNoDock.app/Contents/MacOS/Python >> * all Mach-O 64-bit executable x86_64 >> >> >> 2. SDKs >> ======= >> >> My mac (OSX 10.11) has 3 SDKs installed after multiple OS X and XCode >> updates: >> /Developer/SDKs/MacOSX10.5.sdk/ >> /Developer/SDKs/MacOSX10.6.sdk.hide/ >> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/bin/apr-1-config >> Note the '.hide' appended to the 10.6 SDK. Compilation of mod_wsgi-express >> didn't work until I did that. 10.6 is only there in response to an earlier >> Canopy issue. I installed it in Mavericks after seeing this Canopy support >> post >> <https://support.enthought.com/hc/en-us/articles/204469410-OS-X-GCC-Clang-and-Cython-in-10-9-Mavericks>. >> >> >> 3. Canopy lib folders >> ================ >> >> $ tree /Applications/Canopy.app/Contents/lib/ >> /Applications/Canopy.app/Contents/lib/ >> └── python2.7 >> ├── config >> │ ├── Makefile >> │ ├── Setup >> │ ├── Setup.config >> │ ├── Setup.local >> │ ├── config.c >> │ ├── config.c.in <http://config.c.in/> >> │ ├── enthought.dat >> │ ├── install-sh >> │ ├── libpython2.7.a >> │ ├── libpython2.7.dylib >> │ ├── makesetup >> │ └── python.o >> ├── lib-dynload >> │ └── fcntl.so >> ├── os.py >> └── site.py >> >> >> Other lib directories in Canopy default virtual environments. >> ~/Library/Enthought/Canopy_64bit//System/lib >> ~/Library/Enthought/Canopy_64bit//User/lib >> >> 4. httpd >> ====== >> >> $ file /usr/sbin/httpd >> /usr/sbin/httpd: Mach-O 64-bit executable x86_64 >> >> >> 5. mod-wsgi-py27.so >> ================= >> path: >> ~/Library/Enthought/Canopy_64bit/User//lib/python2.7/site-packages/mod_wsgi-4.5.1-py2.7-macosx-10.6-x86_64.egg/mod_wsgi/server/mod_wsgi-py27.so >> size: 241Kb >> file: Mach-O 64-bit bundle x86_64 >> otool: >> magic cputype cpusubtype caps filetype ncmds sizeofcmds flags >> MH_MAGIC_64 X86_64 ALL 0x00 BUNDLE 13 1672 NOUNDEFS >> DYLDLINK TWOLEVEL >> >> >> 6. *-config files >> =========== >> >> python2.7-config >> ---------------------- >> /usr/bin/python2.7-config >> /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config >> /Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/bin/python2.7-config >> ~/Library/Enthought/Canopy_64bit/System/bin/python2.7-config >> ~/Library/Enthought/Canopy_64bit/User/bin/python2.7-config >> >> apr-1-config >> ---------------- >> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/bin/apr-1-config >> /Developer/SDKs/MacOSX10.5.sdk/usr/bin/apr-1-config >> /Developer/SDKs/MacOSX10.6.sdk.hide/usr/bin/apr-1-config >> /usr/bin/apr-1-config >> /usr/local/Library/ENV/4.3/apr-1-config >> >> Thanks for your time and for any further pointers, >> >> Stephen >> >> >> >> On Wednesday, April 13, 2016 at 11:43:32 AM UTC+1, Graham Dumpleton wrote: >> Actually this could just be it not even finding the Python framework. On >> older MacOS X versions it wasn’t uncommon for third party Python >> installations to screw things up so that it wasn’t actually possible to link >> to their framework from a separate application. >> >> All the LD_RUN_PATH is not used on MacOS X. That is Linux or Solaris. >> >> I can’t remember how to you fix up the framework reference in mod_wsgi.so if >> it is broken. >> >> I don’t think you can simply set the environment variable: >> >> >> DYLD_LIBRARY_PATH=/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib >> >> when running mod_wsgi-express. >> >> That doesn’t seem to be the correct directory for where the framework >> library might be installed anyway. >> >> What do you get for: >> >> find /Applications/Canopy.app -name Python -print >> >> Graham >> >>> On 13 Apr 2016, at 8:34 PM, Graham Dumpleton <graham.d...@ <>gmail.com >>> <http://gmail.com/>> wrote: >>> >>> Are you really running MacOS X 10.6? >>> >>> This issue used to come up in old MacOS X versions. >>> >>> The problem is that one of Apache, mod_wsgi or the Python library doesn’t >>> have a binary image in it for the required architecture. That is, 32 bit or >>> 64 bit. >>> >>> What do you get when you run: >>> >>> file mod_wsgi-py27.so >>> >>> file /usr/sbin/httpd >>> >>> file >>> /Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib/libpython2.7.so >>> <http://libpython2.7.so/> >>> >>> You may have to work out the correct path for each of these. >>> >>> There was some notes about related issue in really old documentation on old >>> Google Code site about things like this. >>> >>> >>> https://code.google.com/archive/p/modwsgi/wikis/InstallationOnMacOSX.wiki >>> <https://code.google.com/archive/p/modwsgi/wikis/InstallationOnMacOSX.wiki> >>> >>> Graham >>> >>>> On 13 Apr 2016, at 8:25 PM, SGaffney <sgga...@ <>gmail.com >>>> <http://gmail.com/>> wrote: >>>> >>>> Hello, >>>> >>>> I'm struggling with installation of mod_wsgi-express in my Canopy >>>> distribution. Compilation works fine (output from python setup.py install >>>> is attached), but when I run `mod_wsgi-express start-server`, I get the >>>> error "Library not loaded: @rpath/Python" (follows email). >>>> >>>> From related support posts, I see that setting the LD_RUN_PATH at >>>> compilation is crucial, but the setup.py file seems to get mine right: >>>> [from debugger inspection in setup.py before "# Now finally run >>>> distutils."] >>>> >> LD_RUN_PATH >>>> '/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib:/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/config' >>>> >> PYTHON_LDFLAGS >>>> ['-L/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib', >>>> >>>> '-L/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/lib/python2.7/config'] >>>> >> PYTHON_LDLIBS >>>> ['-lpython2.7'] >>>> >>>> And here's the output of ldd on the .so file: >>>> > ldd mod_wsgi-py27.so >>>> @rpath/Python (compatibility version 2.7.0, current version 2.7.0) >>>> /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current >>>> version 1226.10.1) >>>> >>>> I'd be very grateful for any suggestions. >>>> >>>> Thank you, >>>> >>>> Stephen >>>> >>>> ------- >>>> >>>> $ mod_wsgi-express start-server >>>> Server URL : http://localhost:8000/ <http://localhost:8000/> >>>> Server Root : /tmp/mod_wsgi-localhost:8000:502 >>>> Server Conf : /tmp/mod_wsgi-localhost:8000:502/httpd.conf >>>> Error Log File : /tmp/mod_wsgi-localhost:8000:502/error_log (warn) >>>> Request Capacity : 5 (1 process * 5 threads) >>>> Request Timeout : 60 (seconds) >>>> Queue Backlog : 100 (connections) >>>> Queue Timeout : 45 (seconds) >>>> Server Capacity : 20 (event/worker), 20 (prefork) >>>> Server Backlog : 500 (connections) >>>> Locale Setting : en_GB.UTF-8 >>>> httpd (mod_wsgi-express) : Syntax error on line 151 of >>>> /tmp/mod_wsgi-localhost:8000:502/httpd.conf: Cannot load >>>> /Users/sgg/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/mod_wsgi-4.5.1-py2.7-macosx-10.6-x86_64.egg/mod_wsgi/server/mod_wsgi-py27.so >>>> into server: >>>> dlopen(/Users/sgg/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/mod_wsgi-4.5.1-py2.7-macosx-10.6-x86_64.egg/mod_wsgi/server/mod_wsgi-py27.so, >>>> 10): Library not loaded: @rpath/Python\n Referenced from: >>>> /Users/sgg/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/mod_wsgi-4.5.1-py2.7-macosx-10.6-x86_64.egg/mod_wsgi/server/mod_wsgi-py27.so\n >>>> Reason: image not found >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google Groups >>>> "modwsgi" group. >>>> To unsubscribe from this group and stop receiving emails from it, send an >>>> email to modwsgi+u...@ <>googlegroups.com <http://googlegroups.com/>. >>>> To post to this group, send email to mod...@ <>googlegroups.com >>>> <http://googlegroups.com/>. >>>> Visit this group at https://groups.google.com/group/modwsgi >>>> <https://groups.google.com/group/modwsgi>. >>>> For more options, visit https://groups.google.com/d/optout >>>> <https://groups.google.com/d/optout>. >>>> <setup.py_install_output.txt> >>> >> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "modwsgi" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] >> <mailto:[email protected]>. >> To post to this group, send email to [email protected] >> <mailto:[email protected]>. >> Visit this group at https://groups.google.com/group/modwsgi >> <https://groups.google.com/group/modwsgi>. >> For more options, visit https://groups.google.com/d/optout >> <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to a topic in the Google > Groups "modwsgi" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/modwsgi/liw8DqjK1XA/unsubscribe > <https://groups.google.com/d/topic/modwsgi/liw8DqjK1XA/unsubscribe>. > To unsubscribe from this group and all its topics, send an email to > [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/modwsgi > <https://groups.google.com/group/modwsgi>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > > > -- > You received this message because you are subscribed to the Google Groups > "modwsgi" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] > <mailto:[email protected]>. > To post to this group, send email to [email protected] > <mailto:[email protected]>. > Visit this group at https://groups.google.com/group/modwsgi > <https://groups.google.com/group/modwsgi>. > For more options, visit https://groups.google.com/d/optout > <https://groups.google.com/d/optout>. > <error_log.txt> -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/d/optout.
