
Ronald Oussoren wrote:
On 15 Sep, 2007, at 18:09, Ian Bicking wrote:
Hi all. I'm kind of giving up on workingenv, and have started working from virtual-python as a basis instead (http://pypi.python.org/pypi/virtualenv/).
So the basic technique here is to copy the executable into /ENV/bin/python, and then sys.prefix will be '/ENV'. The standard Python installed on a Mac doesn't seem to do this -- the prefix remains '/opt/local/Library/Frameworks/Python.framework/Versions/2.4' regardless. (Custom built Python's on Mac work like normal.)
All framework builds behave as you describe, Modules/getpath.c special-cases calculation of sys.prefix for framework builds of Python (the prefix is inside the framework regardless of where the executable is).
Is there any way to effect that calculation? I.e., in a normal build that calculation is based on the location of the executable, so virtualenv moves the executable to effect that.
Does anyone know a way to get the normal effect on this Mac Python?
You could copy the framework into the virtual python environment and rewrite linker commands in the python command-line executable to use that version of the framework.
That sounds like the similar situation to the standard library on other posix systems, which I've avoided copying. To do that, I put a text file in that points to the original stdlib location, and in site.py I add that in (I only copy the portions of the stdlib that are needed when site.py is loaded -- os, re, etc). So the same thing should be possible with the framework, and that's not too much of a problem. I don't have any idea how to figure out the linker commands to change the Python command-line executable...? I don't even have the vocabulary to begin figuring that out, I'm afraid. Can you give an example? -- Ian Bicking : ianb@colorstudy.com : http://blog.ianbicking.org : Write code, do good : http://topp.openplans.org/careers