organizing your scripts, with plenty of re-use
robert.kern at gmail.com
Mon Oct 5 23:19:04 CEST 2009
On 2009-10-05 15:33 PM, Margie wrote:
> I think he is looking for a way for users to be able to use scripts/
> myscript.py (which imports parrot) without having to change their
> PYTHON path with something like this:
> $ export PYTHONPATH=~/LocalToolCheckouts/:$PYTHONPATH
> I'm guessing that Buck has users that are running out of a cvs
> repository. Although many would say those users are now "developers",
> they really are not.
Since he called them "co-developers", I was operating under the assumption that
they were, in fact, developers.
> They probably don't even know they are running
> from a cvs repository. They in fact may think of it as their own
> personal installation, and all they know is that they have scripts
> directory and that that scripts directory has some scripts they want
> to run.
> As Buck said, it can often be very difficult to get things properly
> and quickly installed in a large corporate environment, and providing
> the user with a way to check out a cvs repository can be very quick
> and easy. The problem is that once the user has access to that cvs
> repository, it is difficult to tell them "hey, every time you run from
> it, you need to execute this special command to set up your PYTHONPATH
> environment variable."
No, you tell them: "Add the line
to your ~/.tcshrc and start a new shell."
They each do this once, and it works for all of your scripts with no
boilerplate. You can add features to this shell script, too, like adding the
script directory to their $PATH.
Or you can write a simple "installation" script, which doesn't really install
anything, just adds to their ~/.tcshrc files like so.
Or if this still is beyond your users, put a module into your scripts directory
that does the prepends ~/LocalToolCheckouts/ to sys.path . The only
"boilerplate" you need is one line in each script that imports this module.
But this is all stuff you have to do whether you organize your code into
packages or not. The organization of the code really has no effect on the
installation problems the OP faces.
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list