[Python-Dev] Setting project home path the best way
Daniel Holth
dholth at gmail.com
Fri Nov 16 04:22:27 CET 2012
Are you familiar with executing directories having __main__.py as python scripts?
Daniel Holth
On Nov 15, 2012, at 4:43 PM, Christian Tismer <tismer at stackless.com> wrote:
> Hi Kristjan,
>> does that mean that your scheme simply works, without any config step
> necessary after I did my checkout?
> This would in fact be an interesting alternative to
>> Python setup.py develop
>> but I'm not sure if this is the same scheme on windows and Os X.
>> Getting this part right was rather tricky, and I fear this is still an issue.
>> Right now I think to just force my users to run the install step, since it is quite
> accepted in general.
>> Still, I'd love to see a way with no action needed at all: write yout your structure,
> and it works as-is. Seems to be impossible without tricks.
>> Cheers - chris
>> Sent from my Ei4Steve
>> On Nov 15, 2012, at 10:17, Kristján Valur Jónsson <kristjan at ccpgames.com> wrote:
>>> 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.com at python.org] On Behalf Of Christian Tismer
>>> Sent: 11. nóvember 2012 20:31
>>> To: python-dev at 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 at python.org
>>> http://mail.python.org/mailman/listinfo/python-dev
>>> Unsubscribe: http://mail.python.org/mailman/options/python-
>>> dev/kristjan%40ccpgames.com
>>>> <winmail.dat>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/dholth%40gmail.com
More information about the Python-Dev
mailing list