This is getting a bit outside of my knowledge area, but it does look 
like the environment variables are not being set up correctly when the 
Python process is run.  This is probably a more general apache/mod_php 
sort of question, but it would be great to post the answer here so we 
can add a solution to the matplotlib FAQ.

Cheers,
Mike

"Jonathan Hayward, http://JonathansCorner.com"; wrote:
> It looks like an apache that thinks it's root:
>
> os.system("whoami")
> print "<br>"
> print os.geteuid()
> print "<br>"
> print os.getuid()
> print "<br>"
> print os.path.expanduser("~")
> print "<br>"
> print os.getenv("HOME")
> print "<br>"
> print os.getenv("USERPROFILE")
> print "<br>"
> print os.getenv("USER")
> print "<br>"
> print os.getenv("TMP")
> print "<br>"
>
> produces:
>
> apache
> 81
> 81
> /root
> /root
> None
> root
> None
>
> So I should adjust the system so a confused apache-owned process that 
> thinks it's root will run? Or are there features to ask PHP to spawn 
> subprocesses that know who they're running as? (or is that something 
> beside the point of this list?)
>
> On Fri, Aug 1, 2008 at 1:09 PM, Michael Droettboom <[EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     Below is the code in mpl that actually does the lookup.  To get to
>     the bottom of this, I would try to figure out in your Apache/PHP
>     environment what
>
>      a) what   os.path.expanduser("~")   gives
>
>      b) what the values of the environment variables "HOME",
>     "USERPROFILE", "USER", and "TMP" are.
>
>     I suspect either matplotlib is not getting run under user 'apache'
>     as it should, or there is something fishy about the environment.
>
>     Cheers,
>     Mike
>
>     def _get_home():
>       """Find user's home directory if possible.
>       Otherwise raise error.
>
>       :see:
>      http://mail.python.org/pipermail/python-list/2005-February/263921.html
>       """
>       path=''
>       try:
>           path=os.path.expanduser("~")
>       except:
>           pass
>       if not os.path.isdir(path):
>           for evar in ('HOME', 'USERPROFILE', 'TMP'):
>               try:
>                   path = os.environ[evar]
>                   if os.path.isdir(path):
>                       break
>               except: pass
>       if path:
>           return path
>       else:
>           raise RuntimeError('please define environment variable $HOME')
>
>
>
>     get_home = verbose.wrap('$HOME=%s', _get_home, always=False)
>
>     def _get_configdir():
>       """
>       Return the string representing the configuration dir.
>
>       default is HOME/.matplotlib.  you can override this with the
>       MPLCONFIGDIR environment variable
>       """
>
>       configdir = os.environ.get('MPLCONFIGDIR')
>       if configdir is not None:
>           if not _is_writable_dir(configdir):
>               raise RuntimeError('Could not write to
>     MPLCONFIGDIR="%s"'%configdir)
>           return configdir
>
>       h = get_home()
>       p = os.path.join(get_home(), '.matplotlib')
>
>       if os.path.exists(p):
>           if not _is_writable_dir(p):
>               raise RuntimeError("'%s' is not a writable dir; you must
>     set %s/.matplotlib to be a writable dir.  You can also set
>     environment variable MPLCONFIGDIR to any writable directory where
>     you want matplotlib data stored "% (h, h))
>       else:
>           if not _is_writable_dir(h):
>
>               raise RuntimeError("Failed to create %s/.matplotlib;
>     consider setting MPLCONFIGDIR to a writable directory for
>     matplotlib configuration data"%h)
>
>           os.mkdir(p)
>
>
>
>     "Jonathan Hayward, http://JonathansCorner.com"; wrote:
>
>         User apache exists with home directory /var/www, which exists.
>
>         On Fri, Aug 1, 2008 at 11:59 AM, Michael Droettboom
>         <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>         <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>> wrote:
>
>            It's supposed to default to the current user's home directory.
>             Perhaps "apache" doesn't have a home directory?
>
>
>            Cheers,
>            Mike
>
>            "Jonathan Hayward, http://JonathansCorner.com"; wrote:
>
>                I found a reason for the behavior:
>
>                The script was running as user apache, but trying to open
>                /root/.matplotlib, and /root was mode 0700. It stopped
>                crashing on import after I made /root mode 0711.
>
>                This is somewhat surprising behavior to me; shouldn't it be
>                defaulting to something besides expected access to ~root?
>
>                On Fri, Aug 1, 2008 at 11:38 AM, Jonathan Hayward,
>                http://JonathansCorner.com <[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>>> wrote:
>
>                   Tried that and reran it; I'm getting substantially
>         the same
>                   stacktrace:
>
>
>                     File "/home/jhayward/bintmp/test.py", line 5, in
>         <module>
>                       import matplotlib;
>                     File
>                        
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>                   639, in <module>
>                       rcParams = rc_params()
>                     File
>                        
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>                   562, in rc_params
>                       fname = matplotlib_fname()
>                     File
>                        
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>                   513, in matplotlib_fname
>                       fname = os.path.join(get_configdir(),
>         'matplotlibrc')
>                     File
>                        
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>                   207, in wrapper
>                       ret = func(*args, **kwargs)
>                     File
>                        
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py", line
>                   403, in _get_configdir
>                       raise RuntimeError("Failed to create %s/.matplotlib;
>                consider
>                   setting MPLCONFIGDIR to a writable directory for
>         matplotlib
>                   configuration data"%h)
>                   RuntimeError: Failed to create /root/.matplotlib;
>         consider
>                setting
>                   MPLCONFIGDIR to a writable directory for matplotlib
>                configuration data
>
>                   It's /path/matplotlibrc and not /path/.matplotlibrc
>         or anything
>                   like that?
>
>
>                   On Fri, Aug 1, 2008 at 10:51 AM, Michael Droettboom
>                   <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>         <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>
>                <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>         <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>> wrote:
>
>                       Just throwing out a suggestion here: You could try
>                putting a
>                       matplotlibrc file in the same directory as your
>         Python
>                script
>                       -- it will use that instead of the one in
>         ~/.matplotlib.
>
>                       Cheers,
>                       Mike
>
>
>                       "Jonathan Hayward, http://JonathansCorner.com";
>         wrote:
>
>                           I have a PHP script which authenticates a
>         user and I am
>                           trying to get the PHP script to wrap a Python
>                script using
>                           matplotlib.
>
>                           As it is, the script mostly works when
>         invoked from the
>                           command line or as its own CGI script. When
>         I call
>                it from
>                           a PHP script, it doesn't produce output, and
>                testing found
>                           that when I call a Python script from a PHP
>         script,
>                output
>                           works before but not after "import
>         matplotlib": if
>                the PHP
>                           script calls a script of:
>
>                           #!/usr/bin/python
>                           print "Before import matplotlib."
>                           import matplotlib;
>                           print "After import matplotlib."
>
>                           the first print statement succeeds but the
>         second one
>                           fails; the server log shows a crash of:
>
>                           Before import matplotlib.Traceback (most recent
>                call last):
>                            File "/home/jhayward/bintmp/test.py", line
>         5, in
>                <module>
>                              import matplotlib;
>                            File
>                                
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>                           line 639, in <module>
>                              rcParams = rc_params()
>                            File
>                                
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>                           line 562, in rc_params
>                              fname = matplotlib_fname()
>                            File
>                                
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>                           line 513, in matplotlib_fname
>                              fname = os.path.join(get_configdir(),
>                'matplotlibrc')
>                            File
>                                
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>                           line 207, in wrapper
>                              ret = func(*args, **kwargs)
>                            File
>                                
>         "/usr/lib64/python2.5/site-packages/matplotlib/__init__.py",
>                           line 403, in _get_configdir
>                              raise RuntimeError("Failed to create
>         %s/.matplotlib;
>                           consider setting MPLCONFIGDIR to a writable
>                directory for
>                           matplotlib configuration data"%h)
>                           RuntimeError: Failed to create
>         /root/.matplotlib;
>                consider
>                           setting MPLCONFIGDIR to a writable directory for
>                           matplotlib configuration data
>
>                           I think this error is somewhat misleading;
>         it persisted
>                           after I ran a "chmod -R 1777 /root/.matplotlib".
>
>                           What is the proper way to adjust things so
>                matplotlib will
>                           be happy with its .matplotlib directory?
>
>                           --            -- Jonathan Hayward,
>                [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>                           <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>>
>                           <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>                           <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>>>
>
>
>                           ** To see an award-winning website with stories,
>                essays,
>                           artwork,
>                           ** games, and a four-dimensional maze, why
>         not visit my
>                           home page?
>                           ** All of this is waiting for you at
>                           http://JonathansCorner.com
>
>                           ++ Would you like to curl up with one of my
>                hardcover books?
>                           ++ You can now get my books from
>         http://CJSHayward.com
>                                
>         
> ------------------------------------------------------------------------
>
>                                
>         
> -------------------------------------------------------------------------
>                           This SF.Net email is sponsored by the Moblin
>         Your Move
>                           Developer's challenge
>                           Build the coolest Linux based applications with
>                Moblin SDK
>                           & win great prizes
>                           Grand prize is a trip for two to an Open
>         Source event
>                           anywhere in the world
>                                
>         http://moblin-contest.org/redirect.php?banner_id=100&url=/
>         <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
>              
>          <http://moblin-contest.org/redirect.php?banner_id=100&url=/
>         <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>
>                                
>         <http://moblin-contest.org/redirect.php?banner_id=100&url=/
>         <http://moblin-contest.org/redirect.php?banner_id=100&url=/>
>              
>          <http://moblin-contest.org/redirect.php?banner_id=100&url=/
>         <http://moblin-contest.org/redirect.php?banner_id=100&url=/>>>
>                                
>         
> ------------------------------------------------------------------------
>
>                           _______________________________________________
>                           Matplotlib-users mailing list
>                           Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>
>                <mailto:Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>>
>                          
>         <mailto:Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>
>                <mailto:Matplotlib-users@lists.sourceforge.net
>         <mailto:Matplotlib-users@lists.sourceforge.net>>>
>
>                                
>         https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>                          
>                       --        Michael Droettboom
>                       Science Software Branch
>                       Operations and Engineering Division
>                       Space Telescope Science Institute
>                       Operated by AURA for NASA
>
>
>
>
>                   --    -- Jonathan Hayward,
>                [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>                   <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>>
>
>                   ** To see an award-winning website with stories, essays,
>                artwork,
>                   ** games, and a four-dimensional maze, why not visit my
>                home page?
>                   ** All of this is waiting for you at
>         http://JonathansCorner.com
>
>                   ++ Would you like to curl up with one of my
>         hardcover books?
>                   ++ You can now get my books from http://CJSHayward.com
>
>
>
>
>                --        -- Jonathan Hayward,
>         [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>                <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>>
>
>                ** To see an award-winning website with stories,
>         essays, artwork,
>                ** games, and a four-dimensional maze, why not visit my
>         home page?
>                ** All of this is waiting for you at
>         http://JonathansCorner.com
>
>                ++ Would you like to curl up with one of my hardcover
>         books?
>                ++ You can now get my books from http://CJSHayward.com
>
>
>            --    Michael Droettboom
>            Science Software Branch
>            Operations and Engineering Division
>            Space Telescope Science Institute
>            Operated by AURA for NASA
>
>
>
>
>         -- 
>         -- Jonathan Hayward, [EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>
>         <mailto:[EMAIL PROTECTED]
>         <mailto:[EMAIL PROTECTED]>>
>
>         ** To see an award-winning website with stories, essays, artwork,
>         ** games, and a four-dimensional maze, why not visit my home page?
>         ** All of this is waiting for you at http://JonathansCorner.com
>
>         ++ Would you like to curl up with one of my hardcover books?
>         ++ You can now get my books from http://CJSHayward.com
>
>
>     -- 
>     Michael Droettboom
>     Science Software Branch
>     Operations and Engineering Division
>     Space Telescope Science Institute
>     Operated by AURA for NASA
>
>
>
>
> -- 
> -- Jonathan Hayward, [EMAIL PROTECTED] 
> <mailto:[EMAIL PROTECTED]>
>
> ** To see an award-winning website with stories, essays, artwork,
> ** games, and a four-dimensional maze, why not visit my home page?
> ** All of this is waiting for you at http://JonathansCorner.com
>
> ++ Would you like to curl up with one of my hardcover books?
> ++ You can now get my books from http://CJSHayward.com

-- 
Michael Droettboom
Science Software Branch
Operations and Engineering Division
Space Telescope Science Institute
Operated by AURA for NASA


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users
  • [Matplotlib-user... "Jonathan Hayward, http://JonathansCorner.com"
    • Re: [Matplo... Michael Droettboom
      • Re: [Ma... "Jonathan Hayward, http://JonathansCorner.com"
        • Re:... "Jonathan Hayward, http://JonathansCorner.com"
          • ... Michael Droettboom
            • ... "Jonathan Hayward, http://JonathansCorner.com"
              • ... Michael Droettboom
                • ... "Jonathan Hayward, http://JonathansCorner.com"
                • ... Michael Droettboom
        • Re:... "Jonathan Hayward, http://JonathansCorner.com"
    • Re: [Matplo... Rodney Haynie

Reply via email to