When using brew Python 3.3, you will see on restart the messages:
Error in sitecustomize; set PYTHONVERBOSE for traceback:
ValueError: list.remove(x): x not in list
This is because brew sitecustomize.py file is broken and doesn't take into
consideration that sys.prefix may not always be what it things it will. In
particular, in an embedded system it will be different.
Specifically, brew has:
# Fix 2)
# Remove brewed Python's hard-coded site-packages
sys.path.remove('/usr/local/Cellar/python3/3.3.1/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages')
That is fine for command line brew python3, but is wrong for embedded system
where sys.prefix will actually be:
/usr/local/Frameworks/Python.framework/Versions/3.3
and so will not match that location.
To have things work properly with this brew python3 version, you needed to set
in the Apache configuration file:
WSGIPythonHome
/usr/local/Cellar/python3/3.3.1/Frameworks/Python.framework/Versions/3.3
which will override the PYTHONHOME to be what brew is expecting it to always be.
Note that they appear to have possibly fixed this issue in the sitecustomize.py
file for upcoming Python 3.4 recipe.
https://github.com/Homebrew/homebrew/blob/master/Library/Formula/python3.rb
where they now use:
# Only do this for a brewed python:
opt_executable = '#{opt_bin}/python#{VER}'
if os.path.realpath(sys.executable) == os.path.realpath(opt_executable):
# Remove /System site-packages, and the Cellar site-packages
# which we moved to lib/pythonX.Y/site-packages. Further, remove
# HOMEBREW_PREFIX/lib/python because we later addsitedir(...).
sys.path = [ p for p in sys.path
if (not p.startswith('/System') and
not p.startswith('#{HOMEBREW_PREFIX}/lib/python') and
not (p.startswith('#{rack}') and p.endswith('site-packages'))) ]
Specifically, it is now more tolerant of sys.prefix being different as it would
in an embedded system.
Original issue reported on code.google.com by Graham.Dumpleton@gmail.com on 29 Apr 2014 at 12:15
Original issue reported on code.google.com by
Graham.Dumpleton@gmail.com
on 29 Apr 2014 at 12:15