[Python-ideas] getpath differences Linux vs Windows

Charles Solar redcomet87 at gmail.com
Tue Jan 26 22:22:35 CET 2010


I have been integrating python scripting support into my project and have
been impressed at how easy it has been with boost::python and the excelant
documentation.  I ran into a technical 'problem' today while writing up
Makefiles for my project.  It is not really a problem, just unexpected
behavior that I want to propose a change for.  But first, a little
background info..

I have been doing most of my development so far in windows and just started
porting my project to linux yesterday.  Because I want to make using this
project as easy as possible and because I wanted a python debug build, I
integrated python into my building process in windows.  This involved
creating a new visual studio project for both pythonlib, and python exe, as
well as a few of the libraries such as _ctypes, _elementtree,
_multiprocessing, and _socket.  All these projects compile with my project
and the python Lib directory from the install is kept in a folder that I
then copy into the final destination folder if necessary.  I did all this
work so that my users could check out my project, build it, and run it with
python without installing python.  Also I wanted a debug build, as mentioned
earlier.

Anyway, enough background, this works perfectly on windows because in
PC/getpathp.c when everything goes to hell and you cant figure out a path
you default to ./Lib
Because of this behavior, I can copy the Lib directory into the bin dir and
run python no problem.  I throw all the .py into $(BIN_DIR)/Lib and the C
libs in $(BIN_DIR)/DLLs and python is happy as a clam.

My trouble, and the reason for this email, is on linux the behavior is
different, and Modules/getpath.c does not default to ./Lib when everything
goes to hell, and I get
> ./python
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: can't initialize sys standard streams
ImportError: No module named encodings.utf_8
Aborted

I am going to spend the rest of my afternoon editing Modules/getpath.c and I
thought I would propose updating the non-windows getpath.c file to be more
in line with the windows one.  Or at least, have it take some pointers from
windows.

Thanks for your time
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20100126/69156831/attachment.html>


More information about the Python-ideas mailing list