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

Rok Garbas rok.garbas at gmail.com
Fri Apr 30 08:57:43 CEST 2010


i ment on bootstrap ..

python bootstrap.py -v1.4.3

2010/4/30 Rok Garbas <rok.garbas at gmail.com>:
> 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
>



-- 
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