Hi all --
at long last, I have fixed two problems that a couple people noticed a
while ago:
* 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
http://www.python.org/sigs/distutils-sig/distutils-19990607.tar.gz
Hope someone (Amos?) can try the new version under NT. Any takers for
Mac OS?
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
will change!
Greg
--
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
Hi all,
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
are considered.
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?
Cheers,
Tim
--------------------------------------------------------------
Tim Docker timd(a)macquarie.com.au
Quantative Applications Division
Macquarie Bank
--------------------------------------------------------------
qad16:qad $ ls -l lib/python/
total 110
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
total 30
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
Hi All,
I'm wondering what the state of play is with the following branches:
reinout-scripts
gary-4-include-site-packages
What more needs to happen for these to get merged to trunk and a release
made?
cheers,
Chris
Hi all,
I am having a develop egg in my buildout setup and its setup.py
specifies a dependency in the install_requires field.
When bin/buildout command is run, the dependencies are not installed.
But when I mention the dependency in the buildout.cfg file, it does gets
installed and becomes available to the environment. Alternatively,
running bin/buildout setup <path to setup.py> file installs the
dependency correctly and it works. What could be the issue here?
Here is my buildout.cfg
<snip>
[buildout]
extensions = mr.developer
auto-checkout = <project name>
develop = src/wsb
eggs = <project name>
parts = django
[sources]
<project name> = hg <repository URL>
[django]
recipe=djangorecipe
projectegg = <project name>
extra-paths = src/
settings = settings
</snip>
and the setup.py in the project
<snip>
#! /usr/bin/env python
from distutils.core import setup
setup(name='project name',
version='version number',
description='description text',
author='guruprasad',
author_email='lgp171188(a)gmail.com',
url='project URL',
install_requires=['recaptcha-client']
)
</snip>
Thanks in advance.
Thanks & Regards,
Guruprasad
New submission from Scott Cutler <cutler.scott(a)gmail.com>:
When using setup.py sdist, I found that my module folder "builders" was not being included. After using the debug flag I saw it used a regular expression to match the temporary build path and remove it. The regex is r'^build\.*' . It should be r'^build\\.*'
----------
messages: 635
nosy: wetfeet2000
priority: bug
status: unread
title: bad regular expression for build folder
_______________________________________________
Setuptools tracker <setuptools(a)bugs.python.org>
<http://bugs.python.org/setuptools/issue132>
_______________________________________________
Hello,
We are the SlapOS team, from Nexedi (editor of ERP5, a Zope-based ERP/CRM), and we feel that it is time for us to show you what we have built with Buildout so far.
We've been working for more than a year with Buildout to create a Distributed Cloud Computing OS.
But before that, I would like to thank you for making Buildout, which has really helped us a lot. We are very happy users of buildout and we try to promote it outside Nexedi.
Let me quickly explain you the project.
One of the idea behind SlapOS came from the fact that we had to deploy ERP5 on environments we did not control. We started to use buildout heavily to provide a complete ERP5 stack from the ground up, only relying on the glibc to have stable instances and compiling every dependency to handle differences between distributions. We thought we could generalize the idea to a point we can deploy any kind of software, on any UNIX OS.
One other idea behind SlapOS is that we think that classical, centralized cloud is not resilient enough to provide the kind of high availability which most cloud vendors promise but do not achieve in reality. We have two solutions for this problem : putting all intelligence to end point and letting the (buildout) recipe choose for re-instantiation in another datacenter/computer if current service is too bad, or is dead, and putting most of the servers out of the datacenter : at home, in offices, and everywhere you can put them in. Thus creating a *really* distributed cloud computing system.
Of course, everything we did is Free Software.
We made Buildout the central part of SlapOS, using it to deploy software and instances. Let me explain.
First, we install a software on a computer using Buildout profile like this one :
http://gitorious.org/slapos/slapos/blobs/master/software/mysql-5.1/software…
Here, the whole software and all its dependencies get installed. At this point, software is not usable, because there is no configuration file, i.e MySQL and dependencies is installed but no database, configuration, user or anything exist.
Then, we can request deployment of many instances of this installed software using this kind of Buildout profile :
http://gitorious.org/slapos/slapos/blobs/master/software/mysql-5.1/instance…
And this kind of recipe :
http://gitorious.org/slapos/slapos/blobs/master/slapos/recipe/mysql/__init_…
It will reuse installed software by creating wrappers, configuration files and anything specific to an instance. In the case of MySQL, it will create a database with possibly data in it, user, and configuration file. You can then deploy several independent instances based on the same software.
We made a couple of improvements in Buildout, at least for us. We will write soon in other topics in this mailing list to see if it can be integrated in Buildout repository. If you think we can help in a better way or contribute to buildout in a better way, please let us know. We will be happy to help.
We also wrote a page to explain our views on buildout for SlapOS : http://www.slapos.org/wiki/slapos.Why.Buildout. Here we explain in detail why we choose Buildout in the first place, and we try to show that some critics of buildout are not well formed.
If you are interested in the internals of the project, we can provide you more SlapOS materials. We are in the phase where a lot of documentation is getting written, and SlapOS is becoming usable in production sites.
Best regards,
The SlapOS Team
-----------------
Cédric de Saint Martin,
SlapOS Community Manager @ Nexedi
Hi,
I'm stuck on zc.buildout 1.4.4, but I'd like to use the latest
mr.developer. I've got the special stick-to-buildout-1.4.4 bootstrap,
but if I add mr.developer to the "extends=", it grabs zc.buildout 1.5.2...
Ok, I'm pinning it to 1.4.4 and zc.recipe.egg to 1.2.2. Seems OK that way.
But now buildout-versions suddenly starts spitting out a version list
for versions that I *really* have pinned:
Jinja2 = 2.6
Pygments = 1.4
Sphinx = 1.0.7
mr.developer = 1.18
BeautifulSoup = 3.2.0
Django = 1.3
argparse = 1.2.1
Well, mr.developer is the only unpinned one. But why does the rest
suddenly pop up? Before mr.developer, buildout-versions was nice and quiet.
Reinout
--
Reinout van Rees http://reinout.vanrees.org/
reinout(a)vanrees.org http://www.nelen-schuurmans.nl/
"If you're not sure what to do, make something. -- Paul Graham"
Hi,
We have been working on using buildout with a develop package
depending on numpy, and ran into trouble because 'numpy' is not
specified in the package 'install_requires'.
Specifically, we have something like this:
[buildout]
parts =
nibabel-target
mypy
[nibabel-target]
recipe = zc.recipe.egg:develop
setup = src/nibabel
[mypy]
recipe = zc.recipe.egg:script
eggs =
nibabel
interpreter = py
'nibabel' needs to import numpy to install, but does not specify
'numpy' in its setup.py install_requires, because pip install of numpy
is fragile, and we wanted to error early in general for an attempted
pip install of nibabel, if numpy was not present.
But of course the script above raises an error for the
'nibabel-target' part, because of missing numpy:
-------------
RuntimeError: Cannot import package "numpy" - is it installed?
While:
Installing nibabel-target.
An internal error occurred due to a bug in either zc.buildout or in a
recipe being used:
------------
What we would very much like to do, is to be able to specify the
missing install_requires for this package (and for others we are
thinking of working with), in the recipe - something like:
[nibabel-target]
recipe = zc.recipe.egg:develop
setup = src/nibabel
install-requires =
numpy
but we couldn't immediately see a way of specifying such a dependency.
A quick look at the Develop code in zc/recipe/egg/custom.py
suggested that there wasn't an easy way to add some needed egg onto
the path at this point.
Is there anything we missed that we should have tried?
If not, what would be the best way to solve our problem? A modified recipe?
Best,
Matthew