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]<javascript:>> > 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]<javascript:>> > 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] <javascript:>> > 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] <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 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] <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] <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?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
