When python is being run from a compile environment, it detects this by looking for "Lib" folders in directories above the one containing the executable. (I always thought that this "special" execution mode, hardwired in, was a bit odd, and suggested that this could be made a function of pep405) Anyway, keeping your executable as part of the tree is the trick I use, and to make things nice I put right next to it: site.py sitecustomize.py
sitecustomize.py is where you would put the logic to set sys.path by walking up the hierarchy and finding the proper root. site.py is there to merely import sitecustomize.py, in case a site.py is not found in all the default places python looks. K > -----Original Message----- > From: Python-Dev [mailto:python-dev- > bounces+kristjan=ccpgames....@python.org] On Behalf Of Christian Tismer > Sent: 11. nóvember 2012 20:31 > To: python-dev@python.org > Subject: [Python-Dev] Setting project home path the best way > > Hi friends, > > I have a project that has its root somewhere on my machine. > This project has many folders and contains quite some modules. > > There is a common root of the module tree, and I want to use > - either absolute imports > - relative imports with '.' > > Problem: > > - I want to run any module inside the heirarchy from the command-line > > - this should work, regardless what my 'cwd' is > > - this should work with or without virtualenv. > > So far, things work fine with virtualenv, because sys.executable is in the > project module tree. > > Without virtualenv, this is not so. But I hate to make settings like > PYTHONPATH, because these are not permanent. . > > Question: > > How should I define my project root dir in a unique way, without setting an > environment variable? > What is the lest intrusive way to spell that? > > Reason: > > I'd like to make things work correctly and unambigously when I call a script > inside the module heirarchy. Things are not fixed: there exist many > checkouts In the file system, and each should know where to search its > home/root in the tree. > > Is this elegantly possible to deduce from the actually executed script file? > > Cheers - chris > > Sent from my Ei4Steve > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python- > dev/kristjan%40ccpgames.com _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com