2

I have an AIX 6.1 system that I've compiled and installed:

  • Apache 2.2.21 (into /usr/local/mercurial)
  • Python 2.7.2 (into /usr/local/bin and /usr/local/lib)
  • mod_wsgi 3.3 (with the AIX fix #1 described here)
  • Mercurial 2.0 (system-wide)

However, when Apache starts, I get the following message in error_log:

IOError: invalid Python installation: unable to open /usr/local/bin/lib/python2.7/config/Makefile (No such file or directory)

See the problem? bin/lib doesn't exist. /usr/local/lib/python2.7/config/Makefile does exist though. However, I can't figure out where it's getting that path from. Here's the environment variables I've got:

PYTHONHOME=/usr/local/bin
PYTHONPATH=/usr/local/lib/python2.7
LIBPATH="/usr/local/mercurial/lib:$LIBPATH"
PATH=/usr/local/bin:/usr/local/lib:$PATH
LDR_CNTRL="MAXDATA=0x80000000"
AIXTHREAD_SCOPE=S
AIXTHREAD_MUTEX_DEBUG=OFF
AIXTHREAD_RWLOCK_DEBUG=OFF
AIXTHREAD_COND_DEBUG=OFF
SPINLOOPTIME=1000
YIELDLOOPTIME=8
MALLOCMULTIHEAP=considersize,heaps:8

I've tried all sorts of combinations with and without PYTHONHOME, PYTHONLIB and PATH in envvars. My PATH, in case it matters is:

/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin:/usr/opt/ifor/bin:/usr/local/bin:.
2
  • I created a 'lib' directory under /usr/local/bin and then created a link to /usr/local/lib/python2.7 just to see if it would accept it temporarily. Now it's moved on to complaining about /usr/local/bin/include/python2.7/pyconfig.h which obviously doesn't exist. It should be going to /usr/local/include. Where is it getting all of these invalid paths from?
    – jasonh
    Commented Nov 17, 2011 at 23:33
  • Take out both the PYTHONHOME and PYTHONPATH variables completely and what do you get? PYTHONHOME is set wrong and PYTHONPATH shouldn't be needed. Commented Nov 18, 2011 at 0:19

1 Answer 1

0

PYTHONHOME shouldn't be need. Also, try setting it to /usr/local (the default).

From the documentation:

By default, the libraries are searched in prefix/lib/pythonversion and exec_prefix/lib/pythonversion, where prefix and exec_prefix are installation-dependent directories, both defaulting to /usr/local.

When PYTHONHOME is set to a single directory, its value replaces both prefix and exec_prefix.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .