[Distutils] new zc.buildout and virtualenv no longer friends?

Rok Garbas rok.garbas at gmail.com
Fri Apr 30 08:55:31 CEST 2010


run buildout with -v1.4.3 ... this fixed it for me.... after 1h ofcourse :P

2010/4/30 Chris McDonough <chrism at plope.com>:
> I have a relatively simple buildout that is a directory which is also a
> virtualenv (the buildout directory was prepped after checkout with
> Python 2.4 "virtualenv --no-site-packages ." and the bootstrap was run
> using the resulting "bin/python").
>
> Just now, I had to rerun bin/buildout in that existing directory, and I
> got this:
>
> [chrism at thinko deformsite]$ bin/buildout
> Getting distribution for 'zc.buildout'.
> Got zc.buildout 1.5.0b1.
> Upgraded:
>  zc.buildout version 1.5.0b1;
> restarting.
> Generated script '/home/chrism/projects/deformsite/bin/buildout'.
> Develop: '/home/chrism/projects/deformsite/src/deformsite'
> Develop: '/home/chrism/projects/deformsite/src/deform'
> Develop: '/home/chrism/projects/deformsite/src/colander'
> Getting distribution for 'zc.recipe.egg'.
> Traceback (most recent call last):
>  File "<string>", line 1, in ?
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg/setuptools/__init__.py", line 2, in ?
>    from setuptools.extension import Extension, Library
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg/setuptools/extension.py", line 1, in ?
>    from distutils.core import Extension as _Extension
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/distutils/__init__.py",
> line 3, in ?
>    import warnings
> ImportError: No module named warnings
> An error occured when trying to install zc.recipe.egg 1.2.3b1. Look
> above this message for any errors that were output by easy_install.
> While:
>  Installing.
>  Getting section deformsite.
>  Initializing section deformsite.
>  Installing recipe zc.recipe.egg.
>  Getting distribution for 'zc.recipe.egg'.
> Error: Couldn't install: zc.recipe.egg 1.2.3b1
>
> I had built a new virtualenv'ed buildout only a few hours before it the
> new zc.buildout was released with the most recent releases of
> everything.  I had seen a new release of zc.buildout went up, so I
> figured I just needed to kinda start from scratch.  So subsequently I
> blew everything away and did what I usually do when I want to start
> over:
>
> chrism at thinko projects]$ svn co $REPOZE_SVN/buildouts/deformsite
> <snip>
> Checked out revision 9276.
> [chrism at thinko projects]$ cd deformsite
> [chrism at thinko deformsite]$ virtualenv --no-site-packages .
> New python executable in ./bin/python
> Installing setuptools.............done.
> [chrism at thinko deformsite]$ bin/python bootstrap.py
> Creating directory '/home/chrism/projects/deformsite/parts'.
> Creating directory '/home/chrism/projects/deformsite/eggs'.
> Creating directory '/home/chrism/projects/deformsite/develop-eggs'.
> Getting distribution for 'setuptools'.
> Got setuptools 0.6c11.
>
> But when I went to run it, I got this:
>
> Generated script '/home/chrism/projects/deformsite/bin/buildout'.
> [chrism at thinko deformsite]$ bin/buildout
> Traceback (most recent call last):
>  File "bin/buildout", line 14, in ?
>    import site # imports custom buildout-generated site.py
>  File "/home/chrism/projects/deformsite/parts/buildout/site.py", line
> 661, in ?
>    main()
>  File "/home/chrism/projects/deformsite/parts/buildout/site.py", line
> 628, in main
>    virtual_install_main_packages()
>  File "/home/chrism/projects/deformsite/parts/buildout/site.py", line
> 546, in virtual_install_main_packages
>    f = open(os.path.join(os.path.dirname(__file__), 'orig-prefix.txt'))
> IOError: [Errno 2] No such file or directory:
> '/home/chrism/projects/deformsite/parts/buildout/orig-prefix.txt'
>
> If you were paying attention, you'd notice that I made the buildout dir
> into a virtualenv above, which I've been doing for a long time now to
> get actual isolation.  So at that point, I tried to pin zc.buildout and
> zc.recipe.egg to an older version by adding the following to my
> buildout.cfg:
>
> versions = versions
> [versions]
> zc.buildout = 1.4.3
> zc.recipe.egg = 1.2.2
>
> But when I then did the same dance that blew up above with the version
> pins, it now blew up differently:
>
> [chrism at thinko projects]$ cd deformsite
> [chrism at thinko deformsite]$ virtualenv --no-site-packages .
> New python executable in ./bin/python
> Installing setuptools.............done.
> [chrism at thinko deformsite]$ bin/python bootstrap.py
> Creating directory '/home/chrism/projects/deformsite/parts'.
> Creating directory '/home/chrism/projects/deformsite/eggs'.
> Creating directory '/home/chrism/projects/deformsite/develop-eggs'.
> Getting distribution for 'setuptools'.
> Got setuptools 0.6c11.
> Getting distribution for 'zc.buildout==1.4.3'.
> Traceback (most recent call last):
>  File "<string>", line 1, in ?
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg/setuptools/__init__.py", line 2, in ?
>    from setuptools.extension import Extension, Library
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg/setuptools/extension.py", line 1, in ?
>    from distutils.core import Extension as _Extension
>  File
> "/home/chrism/projects/deformsite/lib/python2.4/distutils/__init__.py",
> line 3, in ?
>    import warnings
> ImportError: No module named warnings
> An error occured when trying to install zc.buildout 1.4.3. Look above
> this message for any errors that were output by easy_install.
> While:
>  Bootstrapping.
>  Getting distribution for 'zc.buildout==1.4.3'.
> Error: Couldn't install: zc.buildout 1.4.3
>
> I pdb stepped through this, and it dies when it reexecutes Python via
> os.spawnle of sys.executable (not on the initial execution of "python
> bootstrap.py"):
>
> [chrism at thinko deformsite]$ bin/python bootstrap.py
>> /home/chrism/projects/deformsite/bootstrap.py(44)?()
> -> assert os.spawnle(
> (Pdb) l
>  39
>  40     ws = pkg_resources.working_set
>  41
>  42     import pdb; pdb.set_trace()
>  43
>  44  -> assert os.spawnle(
>  45         os.P_WAIT, sys.executable, sys.executable,
>  46         '-c', cmd, '-mqNxd', tmpeggs, 'zc.buildout',
>  47         dict(os.environ,
>  48              PYTHONPATH=
>  49
> (Pdb) p sys.executable, cmd, tmpeggs
> ('/home/chrism/projects/deformsite/bin/python', 'from
> setuptools.command.easy_install import main; main()', '/tmp/tmpEduLSX')
> (Pdb) p ws.find(pkg_resources.Requirement.parse('setuptools')).location
> '/home/chrism/projects/deformsite/lib/python2.4/site-packages/setuptools-0.6c11-py2.4.egg'
> (Pdb)
>
> But sure enough, when I run it with a "real" Python instead of the
> virtualenv it works.
>
> Likely, the recent developers buildout of don't use virtualenv, so they
> won't have seen this behavior.  I don't have the fortitude to debug
> buildout right now, and the isolation of a virtualenv keeps us sane.
> Ideally, I could change the buildout.cfg somehow to ignore the new
> buildout release entirely to get back to a state where buildout could be
> driven with a virtualenv-Python.  Any hints?
>
>
> - C
>
>
>
>
> _______________________________________________
> Distutils-SIG maillist  -  Distutils-SIG at python.org
> http://mail.python.org/mailman/listinfo/distutils-sig
>



-- 
Rok Garbas, Python.Zope.Plone consulting
web: http://garbas.si
phone(si): +386 70 707 300
phone(es): +34 68 941 79 62
email: rok at garbas.si


More information about the Distutils-SIG mailing list