I really hate these third party Python distributions. Don’t know what they do to break framework linking.
Even using the install_name_tool tweak, the Python distribution is ignoring the WSGIPythonHome directive, presuming that the argument to that is the same as sys.prefix you get for that Python when run from command line. That directive should be triggering a Python C API call of Py_SetPythonHome() which sets the PYTHONHOME. What it is given should be used unless they have mucked around with the Python initialisation sequence. What do you get if you set: export PYTHONHOME=$HOME/Library/Enthought/Canopy_64bit/User before running mod_wsgi-express. Presuming again that is the value of sys.prefix. BTW, what is the reason you aren’t just using the system Python version? Graham > On 15 Apr 2016, at 10:57 PM, Stephen Gaffney <[email protected]> wrote: > > I changed the LDFLAGS as suggested and got the following otool output for > mod_wsgi.so. > /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) > (I had to specify LIBEXECDIR=... on the make install line to not get what > looks like a System Integrity Protection error.) > > I've attached the httpd.conf file from the install_name_tool-tweaked > 'setup.py install' attempt. > > > > > > On Fri, Apr 15, 2016 at 1:40 PM, Graham Dumpleton <[email protected] > <mailto:[email protected]>> wrote: > >> On 15 Apr 2016, at 10:30 PM, Stephen Gaffney <[email protected] >> <mailto:[email protected]>> wrote: >> >> Here are the Makefile variables: >> CPPFLAGS = >> -I/Applications/Canopy.app/appdata/canopy-1.6.2.3262.macosx-x86_64/Canopy.app/Contents/include/python2.7 >> -DNDEBUG >> CFLAGS = -Wc,-g -Wc,-O2 -Wc,'-arch x86_64' >> LDFLAGS = -Wl,-F/Library/Frameworks -framework Python -u _PyMac_Error >> EPD64.framework/Versions/2.1.0.dev1829/Python -arch x86_64 >> LDLIBS = -ldl -framework CoreFoundation >> I'll try a fresh Canopy installation on a separate OS X 10.11 machine in >> case there's something funny about my setup. > > Don’t think there is a point. Their internal configuration that is cached > from the original build of Python is broken. So they obviously do stupid > things when they build their distro. > > Change the LDFLAGS line to: > > LDFLAGS = -Wl,-F$HOME/Library/Enthought/Canopy_64bit/User -framework > Python -u _PyMac_Error -arch x86_64 > > Substitute the actual value for $HOME. > > Then go: > > make clean > make > > and run ‘otool -L’ again on the mod_wsgi.so file. > > Also, can you send me the generated httpd.conf file that mod_wsgi-express > creates. This will be at the location shown when mod_wsgi-express is run. > > I want to verify what WSGIPythonHome directive is set to in that, but there > may be other information I can glean from it as well. > > Thanks. > > Graham > >> Thanks, >> >> Stephen >> >> >> >> >> On Fri, Apr 15, 2016 at 1:12 PM, Graham Dumpleton >> <[email protected] <mailto:[email protected]>> wrote: >> 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 >> >> -- >> 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>. > <httpd.conf> -- 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.
