Mark Hammond wrote: >> How does Python on Windows determine sys.prefix? > > By consulting the registry. The main use-case for that is when Python is > embedded in another executable - often, but not always, via COM. When > Python is hosted inside excel.exe, for example, its impossible to calculate > sys.path or sys.prefix based on that executable. In that same example, > Python's DLL will have been loaded from a directory on the global PATH, > which generally means the \Windows\System32 directory - so that too is no > help in calculating the path. > > [IIRC, Python actually tries to use the executable to locate its 'landmark' > and only falls back to the registry when that fails - but that sounds > exactly like what is happening in your example. The gory details are in > PC/getpathp.c]
I can certainly create a landmark if at all reasonable. I'm looking at getpathp.c, and it looks like it just looks for lib/os.py ... and I think it walks up from the current directory until it finds it? So right now I have: bin/python.exe lib/python2.5/os.py But perhaps if I just change it to: bin/python.exe lib/os.py it will work? On windows, does it just leave out the "/python2.5/" portion of the lib path? >> Is there a way to effect that? > > Setting PYTHONHOME in the environment is the only way I'm aware of. That's kind of what workingenv did, which I'm trying to avoid -- you have to worry about, for instance, calling another Python subprocess if you don't want that process to be in the same environment. -- Ian Bicking : [EMAIL PROTECTED] : http://blog.ianbicking.org : Write code, do good : http://topp.openplans.org/careers _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
