[Python-Dev] PEP 376
Steven D'Aprano
steve at pearwood.info
Wed Jul 1 00:47:01 CEST 2009
On Wed, 1 Jul 2009 05:19:07 am Tarek Ziadé wrote:
> 2009/6/30 Guido van Rossum <guido at python.org>:
...
> > So what *is* the distutils-sig consensus?
>
> The consensus is to have one and only one way to install
> distributions in Python,
"One and only one way"? Shouldn't that be "one obvious way"?
There is a big difference -- the first implies that Python should
actively prohibit (somehow!) or at least inhibit any other install
mechanisms, while the second implies that there should be a preferred,
obvious, but not compulsory, mechanism.
If you say "one and only one", and I take you at your word, then I can
only assume that you want to actively prevent me from manually
dropping .py files into my PYTHONPATH and having them work. I would
guess that's probably not what you mean, but that's what it sounds like
you're proposing. I don't like guessing -- would you please clarify
what you mean?
Some questions and comments regarding the PEP:
Rationale:
http://www.python.org/dev/peps/pep-0376/#id13
"There are too many ways to do it."
Why is having multiple ways of adding distributions a problem to be
solved? On my Linux system, I can add packages with rpm/yum, or I can
compile them from source and manage them myself. I possibly even could
(but never have!) install apt-get and use it to manage packages.
Another rationale which should be added:
There is no standard way of uninstalling distributions.
How distributions are installed:
http://www.python.org/dev/peps/pep-0376/#id14
"The problem is that many people use easy_install (from the setuptools
project [4]) or pip [5] to install their packages, and these
third-party tools do not install packages in the same way that
Distutils does"
Why is that a problem to be solved?
Uninstall information:
http://www.python.org/dev/peps/pep-0376/#id15
"Under some circumstances, you might not be able to know for sure that
you have removed everything, or that you didn't break another
distribution by removing a file that is shared among several
distributions."
I don't see how this proposal will help in the second case. If you
install distribution Spam, containing file spam.py, and then install
distribution Ham, which requires spam.py, what is to prevent you from
removing Spam and breaking Ham?
If you don't propose a solution for the dependency problem, you should
say so.
The RECORD format:
http://www.python.org/dev/peps/pep-0376/#id19
"Each record is composed of three elements.
...
the MD5 hash of the file, encoded in hex. Notice that pyc and pyo
generated files will not have a hash because they are automatically
produced from py files."
What if your distribution is not a source distribution and only provides
pyc and pyo files?
--
Steven D'Aprano
More information about the Python-Dev
mailing list