lost interest?

Justin Sheehy justin at iago.org
Tue Dec 11 12:28:41 EST 2001


David Brady <daves_spam_dodging_account at yahoo.com> writes:

>> > I'd ask a different question from yours.  Why is
>> > it a problem that Python doesn't have an
>> > equivalent to CPAN?  "Perl has it" isn't
>> > enough.
> 
> ...because Ruby might get one?  ;-)

So?

Ruby has a few other things Python doesn't have.  Python is mature
enough that in general it doesn't have to worry about competing for
survival on the basis of a feature bullet-list.  This is especially
true for features that are solving a problem that has not been shown
to be a very big deal.

> Here's a story from my perl days.  Imagine this
> existed for Python, and then decide if you're willing
> to continue suffering without this feature.... :-)

> The problem was, half the developers on the team
> didn't know perl, and didn't want to learn it.  And of
> the 12 or so "apps" written in perl, 8 required
> modules not packaged with the ActiveState perl distro.
>  Our manager looked at the first 5 or 6 apps that we
> were using in our home office, and vetoed them unless
> we could find a way to resolve the I.T. nightmare of
> getting all the developers on the same page with a
> perl distro that could run our apps.

> Because CPAN existed, we were able to easily write an
> "autoinstaller" module.  Every time you ran one of our
> scripts, it checked the requirements, and if you were
> missing a module, it went out, got the module,
> installed it, and then resumed running.  You didn't
> even have to restart the script.  If you didn't have a
> module, you just had to wait an extra minute or two
> the first time the script ran.

So you simply package the modules along with your program, and use the
setup.py with each module to install it locally.  You may want to
provide two versions of your program distribution, one with the
support modules and one without.

There are a few third-party modules whose license might restrict this,
but in general this is a workable solution.  It also ensures that you
are using exactly the version of the module that works and has been
tested with your program.

Also, in my experience, there are generally far fewer third-party
modules needed by a large Python system than by a large Perl system.

-Justin

 





More information about the Python-list mailing list