Project source code layout?
Dave Angel
davea at ieee.org
Thu Jun 4 23:56:33 EDT 2009
Lawrence D'Oliveiro wrote:
> In message <mailman.1112.1244128369.8015.python-list at python.org>, Allen
> Fowler wrote:
>
>
>> 1) Do you use virtualpython?
>>
>
> No idea what that is.
>
>
>> 2) How do you load the modules in your lib directory?
>>
>
> At the beginning of my scripts, I have a sequence like
>
> test_mode = False # True for testing, False for production
>
> if test_mode :
> home_dir = "/home/shop-test"
> else :
> home_dir = "/home/shop"
> #end if
>
> sys.path.append(home_dir + "/lib")
>
> import common
> [etc]
>
> I have an installation script that looks for that "test_mode = True/False"
> assignment and edits it accordingly. That flag is used to select the top-
> level directory (as above) as well as the database name, etc. This allows me
> to run two complete parallel sets of code and data, so I can mess around
> with the testing version without impacting the production system.
>
>
>> 3) How do you reference your configuration directives from within your
>> modules and CGI/daemon scripts?
>>
>
> For my last project using the above system, I used XML as the config file
> format.
>
>
>
Rather than editing the source files at install time, consider just
using an environment variable in your testing environment, which would
be missing in production environment. Each command shell has its own
set of environment variables, so this would make testing pretty easy,
without the risk of things getting out of synch. Alternatively, if the
script is located in a fixed place, relative to the home directory, just
do some manipulation of the __file__ string.
More information about the Python-list
mailing list