btw, setting WSGIPythonHome in httpd.conf doesn't make any difference. I guess the EPD/mod_wsgi combination just plain doesn't work at this point in time?
On Friday, June 14, 2013 5:23:20 AM UTC+1, Graham Dumpleton wrote: > > If this a new report of EPD issues, confusing because you are following up > to past discussion, I think we may have ascertained that EPD Python > distribution somehow breaks the Python API that is used by embedded systems > and whatever change they have made is prohibiting the overriding of Python > home via the C API. > > Thus it is necessary so set the PYTHONHOME environment variable in the > startup scripts for Apache. > > If EPD have broken embedding, it is quite annoying. > > Graham > > On 13/06/2013, at 9:04 PM, ultra909 <[email protected] <javascript:>> > wrote: > > So I have just created a brand new Ubuntu server instance and installed > EPD on it under a new user, as per the instructions here: > > > https://support.enthought.com/entries/23419907-Getting-Started-with-EPD-on-Linux > > > I have then installed mod_wsgi 3.4 from source as per the steps above. > > Then I created a mod_wsgi.load file in mods-available with the single line > > LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so > > > and a symbolic link to it from mods-enabled. > > > EPD Python executable *is* in the PATH for the Apache user: > > > prophet@www2:/etc/apache2/mods-available$ echo $PATH > > /home/prophet/workspace/python/epd-7.3-2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games > > > So in theory, WSGIPythonHome should not need to be set? > > > When I restart Apache2 service, I get the same exact same error... > > > Ok, so now I create a mod_wsgi.conf file in mods-available: > > > <IfModule mod_wsgi.c> > > > WSGIPythonHome /home/prophet/workspace/python/epd-7.3-2 # <-- value of > sys.prefix > > > </IfModule> > > > > > And sym link from mods-enabled. > > > When I restart Apache2 service, I get the same exact same error... > > > Traceback (most recent call last): > > File "/usr/lib/python2.7/site.py", line 562, in <module> > > main() > > File "/usr/lib/python2.7/site.py", line 544, in main > > known_paths = addusersitepackages(known_paths) > > File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages > > user_site = getusersitepackages() > > File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages > > user_base = getuserbase() # this will also set USER_BASE > > File "/usr/lib/python2.7/site.py", line 236, in getuserbase > > USER_BASE = get_config_var('userbase') > > File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var > > return get_config_vars().get(name) > > File "/usr/lib/python2.7/sysconfig.py", line 476, in get_config_vars > > _init_posix(_CONFIG_VARS) > > File "/usr/lib/python2.7/sysconfig.py", line 337, in _init_posix > > makefile = _get_makefile_filename() > > File "/usr/lib/python2.7/sysconfig.py", line 331, in _get_makefile_filename > > return > os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" > + (sys.pydebug and "_d" or ""), "Makefile") > > AttributeError: 'module' object has no attribute 'pydebug' > > > N.B. I have not created any site content or config on this new box yet. > > > On Friday, May 17, 2013 1:03:22 AM UTC+1, Graham Dumpleton wrote: >> >> On first glance, yes, looks okay. >> >> If this is still not working, then set LogLevel in Apache to debug. With >> that done mod_wsgi should log messages to the Apache error log about when >> it is setting the Python home location to and what. That way you can >> confirm it is using what you told it to. >> >> Graham >> >> On 17/05/2013, at 12:41 AM, Matthew O'Connell <[email protected]> >> wrote: >> >> So mod_python is not installed on the server and I have already the >> following two apache config files... >> >> >> /etc/apace2/mods-available/mod-wsgi.load: >> >> LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so >> >> >> /etc/apace2/mods-available/mod-wsgi.conf: >> >> <IfModule mod_wsgi.c> >> >> WSGIPythonHome /home/apache_user/workspace/python/current >> >> </IfModule> >> >> >> Looks correct? >> >> >> On 16 May 2013, at 00:28, Graham Dumpleton <[email protected]> wrote: >> >> Try adding to the Apache configuration: >> >> WSGIPythonHome /home/apache_user/workspace/python/current >> >> It is possible that at runtime, because your Python is in a non standard >> location, that it is picking of the .py files from the standard location >> rather than where your Python installation is. This will force it to look >> in the correct location. >> >> Note that you MUST not be using mod_python in the same Apache as that >> will override this and cause it not to work. >> >> Graham >> >> On 15/05/2013, at 11:25 PM, ultra909 <[email protected]> wrote: >> >> Hi Graham, >> >> So like Isaac, I am trying to get mod_wsgi to play with the Enthought >> Python distro on Ubuntu. >> >> I have likewise followed the instructions for building with Multiple >> Python Versions and run the following: >> >> make distclean >> ./configure >> --with-python=/home/apache_user/workspace/python/current/bin/python >> LD_RUN_PATH=/home/apache_user/workspace/python/current/lib make >> sudo make install >> >> When I try and start Apache, I just get the following in a loop in the >> error.log: >> >> Traceback (most recent call last): >> File "/usr/lib/python2.7/site.py", line 562, in <module> >> main() >> File "/usr/lib/python2.7/site.py", line 544, in main >> known_paths = addusersitepackages(known_paths) >> File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages >> user_site = getusersitepackages() >> File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages >> user_base = getuserbase() # this will also set USER_BASE >> File "/usr/lib/python2.7/site.py", line 236, in getuserbase >> USER_BASE = get_config_var('userbase') >> File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var >> return get_config_vars().get(name) >> File "/usr/lib/python2.7/sysconfig.py", line 476, in get_config_vars >> _init_posix(_CONFIG_VARS) >> File "/usr/lib/python2.7/sysconfig.py", line 337, in _init_posix >> makefile = _get_makefile_filename() >> File "/usr/lib/python2.7/sysconfig.py", line 331, in >> _get_makefile_filename >> return >> os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), >> "config" + (sys.pydebug and "_d" or ""), "Makefile") >> AttributeError: 'module' object has no attribute 'pydebug' >> >> On Monday, 29 April 2013 01:18:55 UTC+2, Graham Dumpleton wrote: >>> >>> Since I can't see in the prior discussion mention of the error given by >>> the traceback, can you go back to square one and explain your specific >>> problem from the start rather than just assuming it is related to the prior >>> one. Not knowing the background of what you are doing makes it hard to >>> comment. >>> >>> Graham >>> >>> On 25/04/2013, at 5:28 AM, ultra909 <[email protected]> wrote: >>> >>> Hi, >>> >>> I have EXACTLY the same problem as you. Have done all that and yet still >>> get nothing out of Apache other than: >>> >>> [Wed Apr 24 15:15:55 2013] [info] mod_wsgi (pid=10234): Python home >>>>>> /home/strongshell/workspace/python/epd-7.3-1/. >>>>> >>>>> [Wed Apr 24 15:15:55 2013] [info] mod_wsgi (pid=10234): Initializing >>>>>> Python. >>>>> >>>>> Traceback (most recent call last): >>>>> >>>>> File "/usr/lib/python2.7/site.py", line 562, in <module> >>>>> >>>>> main() >>>>> >>>>> File "/usr/lib/python2.7/site.py", line 544, in main >>>>> >>>>> known_paths = addusersitepackages(known_paths) >>>>> >>>>> File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages >>>>> >>>>> user_site = getusersitepackages() >>>>> >>>>> File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages >>>>> >>>>> user_base = getuserbase() # this will also set USER_BASE >>>>> >>>>> File "/usr/lib/python2.7/site.py", line 236, in getuserbase >>>>> >>>>> USER_BASE = get_config_var('userbase') >>>>> >>>>> File "/usr/lib/python2.7/sysconfig.py", line 577, in get_config_var >>>>> >>>>> return get_config_vars().get(name) >>>>> >>>>> File "/usr/lib/python2.7/sysconfig.py", line 476, in get_config_vars >>>>> >>>>> _init_posix(_CONFIG_VARS) >>>>> >>>>> File "/usr/lib/python2.7/sysconfig.py", line 337, in _init_posix >>>>> >>>>> makefile = _get_makefile_filename() >>>>> >>>>> File "/usr/lib/python2.7/sysconfig.py", line 331, in >>>>>> _get_makefile_filename >>>>> >>>>> return >>>>>> os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), >>>>>> "config" + (sys.pydebug and "_d" or ""), "Makefile") >>>>> >>>>> AttributeError: 'module' object has no attribute 'pydebug' >>>>> >>>>> >>>>> >>> Clearly it's still hitting the base system python somehow - can't even >>> get it to run a simple wsgi to dump out sys variables. My WSGIPythonHome is >>> set to the directory above lib and bin... ldd looks all good... any ideas? >>> >>> TIA >>> >>> On Thursday, 10 January 2013 20:45:26 UTC+1, Isaac Shivvers wrote: >>>> >>>> Hi all, >>>> >>>> Just a quick bump, bringing this post back to life. >>>> >>>> I'm running a similar setup, and had a very similar problem: >>>> - attempting to run a mod_wsgi application using a specific, custom >>>> Enthought python build >>>> - used multiple-python guide >>>> here<http://code.google.com/p/modwsgi/wiki/InstallationIssues>, >>>> and it appeared successful >>>> - but, I still had problems: >>>> - libraries that should work (numpy) did not >>>> - sys.version (inside wsgi application) reported default system >>>> version, not the one I wanted >>>> >>>> But, modifying the LD_RUN_PATH with make worked like a charm! >>>> I re-compiled mod_wsgi, as Graham suggested: >>>> >>>> make distclean >>>> ./configure --with-python=/path/to/python/executable >>>> LD_RUN_PATH=/path/to/python/lib make >>>> sudo make install >>>> >>>> Thanks for all the work you've put into mod_wsgi! >>>> -Isaac >>>> >>>> >>>> >>>> >>>> On Tuesday, May 3, 2011 4:46:30 PM UTC-7, Graham Dumpleton wrote: >>>>> >>>>> On 4 May 2011 03:41, Daniel O'Donovan <[email protected]> wrote: >>>>> > Thanks for your help Graham, embarrassingly, many of my problems >>>>> stemmed from using >>>>> > >>>>> > $ service httpd restart >>>>> > >>>>> > to control my apache daemon rather than >>>>> > >>>>> > $ /etc/init.d/httpd restart >>>>> > >>>>> > As 'service' will remove some of your environment variables >>>>> (PYTHONHOME seems to be key - WSGIPythonHome didn't seem to have any >>>>> effect). >>>>> >>>>> You should never rely on environment variables set in user environment >>>>> being inherited because when box reboots it will fail. >>>>> >>>>> As I said before, WSGIPythonHome doesn't help with which shared >>>>> library is found, only the runtime Python installation prefix. Your >>>>> comments before suggested sys.path was correct which indicated that >>>>> WSGIPythonHome was at least doing it job correctly. As per the >>>>> documented I directed you to, the important value is sys.prefix and >>>>> what that is set to within mod_wsgi. >>>>> >>>>> WSGIPythonHome should work so long as mod_python not loaded, you get >>>>> the prefix you give it correct, Apache can read the directories for >>>>> the installation and you haven't managed to inherit user environment >>>>> variables that screw it all up. >>>>> >>>>> >> What do you mean here? Ie., what does patchelf do and how does it >>>>> >> change the output from ldd on mod_wsgi.so? >>>>> > >>>>> > patchelf modifies the dynamic linker and RPATH of ELF executables. >>>>> Unfortunately setting --with-python= and LD_RUN_PATH had no effect for >>>>> me, >>>>> so but a quick >>>>> > >>>>> > $ patchelf --set-rpath /lib64:/path/to/my/custom/lib >>>>> /etc/httpd/modules/mod_wsgi.so >>>>> > >>>>> > did the job. - ldd now searches for dynamic libs in /lib64 and >>>>> /path/to/my/custom/lib and finds the appropriate non-system python. >>>>> >>>>> Setting LD_RUN_PATH in user environment when building mod_wsgi should >>>>> work. I can't say what you have done wrong as you haven't supplied >>>>> exact logs of what commands you ended up running to build it and what >>>>> subsequent ldd output was. Also don't know what other user environment >>>>> variables you had set which could cause problems. >>>>> >>>>> Anyway, if you have got it working then doesn't matter I guess. >>>>> >>>>> 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]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/modwsgi?hl=en. >>> For more options, visit https://groups.google.com/groups/opt_out. >>> >>> >>> >>> >>> >> -- >> 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 http://groups.google.com/group/modwsgi?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> >> >> -- >> 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/DW0DzFrF1YY/unsubscribe?hl=en. >> To unsubscribe from this group and all its topics, send an email to >> [email protected]. >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/modwsgi?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> >> >> -- >> 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 http://groups.google.com/group/modwsgi?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> >> >> > -- > 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] <javascript:>. > To post to this group, send email to [email protected] <javascript:> > . > Visit this group at http://groups.google.com/group/modwsgi?hl=en. > For more options, visit https://groups.google.com/groups/opt_out. > > > > > -- 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 http://groups.google.com/group/modwsgi. For more options, visit https://groups.google.com/groups/opt_out.
