Hi all --
at long last, I have fixed two problems that a couple people noticed a
* I folded in Amos Latteier's NT patches almost verbatim -- just
changed an `os.path.sep == "/"' to `os.name == "posix"' and added
some comments bitching about the inadequacy of the current library
installation model (I think this is Python's fault, but for now
Distutils is slavishly aping the situation in Python 1.5.x)
* I fixed the problem whereby running "setup.py install" without
doing anything else caused a crash (because 'build' hadn't yet
been run). Now, the 'install' command automatically runs 'build'
before doing anything; to make this bearable, I added a 'have_run'
dictionary to the Distribution class to keep track of which commands
have been run. So now not only are command classes singletons,
but their 'run' method can only be invoked once -- both restrictions
enforced by Distribution.
The code is checked into CVS, or you can download a snapshot at
Hope someone (Amos?) can try the new version under NT. Any takers for
BTW, all parties involved in the Great "Where Do We Install Stuff?"
Debate should take a good, hard look at the 'set_final_options()' method
of the Install class in distutils/install.py; this is where all the
policy decisions about where to install files are made. Currently it
apes the Python 1.5 situation as closely as I could figure it out.
Obviously, this is subject to change -- I just don't know to *what* it
Greg Ward - software developer gward(a)cnri.reston.va.us
Corporation for National Research Initiatives
1895 Preston White Drive voice: +1-703-620-8990
Reston, Virginia, USA 20191-5434 fax: +1-703-620-0913
I've been aware that the distutils sig has been simmerring away, but
until recently it has not been directly relevant to what I do.
I like the look of the proposed api, but have one question. Will this
support an installed system that has multiple versions of the same
package installed simultaneously? If not, then this would seem to be a
significant limitation, especially when dependencies between packages
Assuming it does, then how will this be achieved? I am presently
managing this with a messy arrangement of symlinks. A package is
installed with its version number in it's name, and a separate
directory is created for an application with links from the
unversioned package name to the versioned one. Then I just set the
pythonpath to this directory.
A sample of what the directory looks like is shown below.
I'm sure there is a better solution that this, and I'm not sure that
this would work under windows anyway (does windows have symlinks?).
So, has this SIG considered such versioning issues yet?
Tim Docker timd(a)macquarie.com.au
Quantative Applications Division
qad16:qad $ ls -l lib/python/
drwxr-xr-x 2 mts mts 512 Nov 11 11:23 1.1
-r--r----- 1 root mts 45172 Sep 1 1998 cdrmodule_0_7_1.so
drwxr-xr-x 2 mts mts 512 Sep 1 1998 chart_1_1
drwxr-xr-x 3 mts mts 512 Sep 1 1998 Fnorb_0_7_1
dr-xr-x--- 3 mts mts 512 Nov 11 11:21 Fnorb_0_8
drwxr-xr-x 3 mts mts 1536 Mar 3 12:45 mts_1_1
dr-xr-x--- 7 mts mts 512 Nov 11 11:22 OpenGL_1_5_1
dr-xr-x--- 2 mts mts 1024 Nov 11 11:23 PIL_0_3
drwxr-xr-x 3 mts mts 512 Sep 1 1998 Pmw_0_7
dr-xr-x--- 2 mts mts 512 Nov 11 11:21 v3d_1_1
qad16:qad $ ls -l lib/python/1.1
lrwxrwxrwx 1 root other 29 Apr 10 10:43 _glumodule.so -> ../OpenGL_1_5_1/_glumodule.so
lrwxrwxrwx 1 root other 30 Apr 10 10:43 _glutmodule.so -> ../OpenGL_1_5_1/_glutmodule.so
lrwxrwxrwx 1 root other 22 Apr 10 10:43 _imaging.so -> ../PIL_0_3/_imaging.so
lrwxrwxrwx 1 root other 36 Apr 10 10:43 _opengl_nummodule.so -> ../OpenGL_1_5_1/_opengl_nummodule.so
lrwxrwxrwx 1 root other 27 Apr 10 10:43 _tkinter.so -> ../OpenGL_1_5_1/_tkinter.so
lrwxrwxrwx 1 mts mts 21 Apr 10 10:43 cdrmodule.so -> ../cdrmodule_0_7_1.so
lrwxrwxrwx 1 mts mts 12 Apr 10 10:43 chart -> ../chart_1_1
lrwxrwxrwx 1 root other 12 Apr 10 10:43 Fnorb -> ../Fnorb_0_8
lrwxrwxrwx 1 mts mts 12 Apr 10 10:43 mts -> ../mts_1_1
lrwxrwxrwx 1 root other 15 Apr 10 10:43 OpenGL -> ../OpenGL_1_5_1
lrwxrwxrwx 1 root other 33 Apr 10 10:43 opengltrmodule.so -> ../OpenGL_1_5_1/opengltrmodule.so
lrwxrwxrwx 1 root other 33 Apr 10 10:43 openglutil_num.so -> ../OpenGL_1_5_1/openglutil_num.so
lrwxrwxrwx 1 root other 10 Apr 10 10:43 PIL -> ../PIL_0_3
lrwxrwxrwx 1 mts mts 10 Apr 10 10:43 Pmw -> ../Pmw_0_7
lrwxrwxrwx 1 root other 10 Apr 10 10:43 v3d -> ../v3d_1_1
PEP 386 seem to be ready, and I would like to push if for feedback at
python-dev, just before PEP 345 is pushed.
My only concern is now to make sure the PEP motivations and
explanations are crystal clear.
Anyone see any problem ? or have any concern with this PEP ?
This PEP is the basis for PEP 345 acceptation.
Tarek Ziadé | http://ziade.org | オープンソースはすごい! | 开源传万世，因有你参与
At 07:16 PM 11/30/2009 +0200, cool-RR wrote:
>Well, that sort of sucks. And this is my motivation for bundling the
>`pkg_resources` from Distribute. The last thing I want is having my
>software fail for my users because of setuptools while I have
>Distribute installed locally and can't see the bug on my computer.
That's *really* unlikely. Setuptools' runtime functionality (i.e.,
pkg_resources) has an extremely low bug count. There have actually
been more new pkg_resources bugs in Distribute's version of it (due
to their changes) than there are outstanding reported bugs in the
At 08:10 PM 11/30/2009 +0100, Tarek Ziadé wrote:
>2009/11/30 P.J. Eby <pje(a)telecommunity.com>:
> > At 07:16 PM 11/30/2009 +0200, cool-RR wrote:
> >> Well, that sort of sucks. And this is my motivation for bundling the
> >> `pkg_resources` from Distribute. The last thing I want is having
> my software
> >> fail for my users because of setuptools while I have Distribute installed
> >> locally and can't see the bug on my computer.
> > That's *really* unlikely. Setuptools' runtime functionality (i.e.,
> > pkg_resources) has an extremely low bug count. There have actually been
> > more new pkg_resources bugs in Distribute's version of it (due to their
> > changes) than there are outstanding reported bugs in the original
> > pkg_resources.
>As I said earlier, we've had our share of bugs because we needed to
>work in some particular environments, but that was bootstraping issues
>we've fixed. And
>if we have more we will fix them and release another version of Distribute.
I wasn't criticizing Distribute - I was using Distribute to show just
*how low* pkg_resources' bug count is.
(You know, this is now the third time in the last few days where
you've interpreted my *positive* comments about your work (e.g. PEP
386) to someone else here as being some sort of criticism or argument
At 08:59 PM 11/30/2009 +0200, cool-RR wrote:
>Okay. But I don't use `require()`, the only thing I need from
>`pkg_resources` is the ability to extract resources from folders. So
>will there be any problem if I bundle it for that?
If that's all you're using, probably not. In any case, if that's the
only functionality you're using, it's doubtful that there's really
any difference to that functionality in Distribute, especially in the
case of packages that aren't installed in zipfile format.
At 08:10 PM 11/30/2009 +0200, cool-RR wrote:
>Now I'm confused. If that's true, what reason is there to use
>Distribute's `pkg_resources` at all?
Unless there's some bug they've fixed in it that nobody has reported
here or on the setuptools bug tracker, there isn't any.
(And of course, if such a bug exists, I would certainly like to know about it.)
I've asked before about bundling Distribute. But now I ask, is it possible to
pull out the `pkg_resources` module from the Distribute folder and bundle only
that with my project?
Also, is that `pkg_resources` module different than the one that comes with