[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