Re: Ayuda con buildout

Luis Miguel Morillas <[email protected]>
Newsgroups gmane.comp.python.general.castellano
Message-ID <[email protected]>
El día 24 de septiembre de 2009 08:52, Mikel Larreategi
<[email protected]> escribió:
> Luis Miguel Morillas(e)k dio:
>>
>> Ups. Lo siento, he hecho un copia/pega demasiado rápido del buildout.cfg.
>>
>> El que estoy usando es este:
>>
>> #####  fichero buildout.cfg
>>
>> [buildout]
>> develop = amara_hg
>> parts = amara2
>>
>> [amara2]
>> recipe = zc.recipe.egg
>> interpreter = amara_py
>> eggs = Amara
>>
>> #### fin fichero
>>
>> En el directorio amara_hg hay un clone del repositorio que usamos.
>>
>> Problema 1:
>> Por lo que veo construye el .egg en
>> ./amara_hg/dist/Amara-2.0a3-py2.6-linux-i686.egg , pero luego el
>> intérprete creado (bin/amara_py en mi caso) no lo importa . El archivo
>> develop-eggs/Amara.egg-link  creado contiene
>> /home/lm/src/buildouts/AmaraBuildSrc/amara_hg, no una referencia al
>> .egg.  ¿Por qué no puede enlazar el egg creado?
>
> He hecho una prueba haciendo a mano un hg clone del repositorio que indicas
> en el buildout del "Problema 2" y a mí me funciona bien.
>
> Por mucho que construya el egg en un directorio interno el enlace que se
> hace cuando tienes un develop-egg se hace al directorio en el que está el
> código fuente.
>
> Con el buildout que indicas arriba y haciendo un hg clone
> http://bitbucket.org/uche/amara/ amara_hg en la carpeta donde está
> buildout.cfg obtengo lo siguiente::
>
> erral@lindari:/tmp/am$ python2.5 bootstrap.py
> Creating directory '/tmp/am/bin'.
> Creating directory '/tmp/am/parts'.
> Creating directory '/tmp/am/develop-eggs'.
> Generated script '/tmp/am/bin/buildout'.
> erral@lindari:/tmp/am$ ./bin/buildout -vv
> Installing 'zc.buildout', 'setuptools'.
> We have the best distribution that satisfies 'zc.buildout'.
> Picked: zc.buildout = 1.4.1
> We have the best distribution that satisfies 'setuptools'.
> Picked: setuptools = 0.6c9
> Develop: '/tmp/am/amara_hg'
> in: '/tmp/am/amara_hg'
> /tmp/tmpfCmArU develop -mxN -d /tmp/am/develop-eggs/tmpGSz-Vhbuild
> running develop
> Checking .pth file support in /tmp/am/develop-eggs/tmpGSz-Vhbuild
> /usr/bin/python2.5 -E -c pass
> running egg_info
> writing Amara.egg-info/PKG-INFO
> writing top-level names to Amara.egg-info/top_level.txt
> writing dependency_links to Amara.egg-info/dependency_links.txt
> file demo/scrapesniff.py (for module amara.tools.scrapesniff) not found
> reading manifest file 'Amara.egg-info/SOURCES.txt'
> reading manifest template 'MANIFEST.in'
> warning: no files found matching 'MANIFEST'
> warning: no files found matching 'amara/xpath/parser/xpath.bgen'
> warning: no files found matching
> 'amara/xpath/parser/xpath_grammar.bgen.frag'
> warning: no files found matching
> 'amara/xpath/parser/xpath_lexer_defines.bgen.frag'
> warning: no files found matching
> 'amara/xpath/parser/xpath_lexer_patterns.bgen.frag'
> warning: no files found matching
> 'amara/xpath/parser/xpath_modules.bgen.frag'
> warning: no files found matching 'amara/xpath/parser/xpath_tokens.bgen.frag'
> warning: no files found matching 'amara/xslt/expressions/avt.bgen'
> warning: no files found matching 'amara/xslt/xpatterns/xpattern.bgen'
> warning: no files found matching 'amara/src/expat/COPYING'
> warning: no files found matching 'amara/src/expat/README'
> writing manifest file 'Amara.egg-info/SOURCES.txt'
> running build_ext
> copying build/lib.linux-i686-2.5/amara/_xmlstring.so -> lib
> copying build/lib.linux-i686-2.5/amara/_expat.so -> lib
> copying build/lib.linux-i686-2.5/amara/_domlette.so -> lib
> copying build/lib.linux-i686-2.5/amara/writers/_xmlstream.so -> lib/writers
> copying build/lib.linux-i686-2.5/amara/writers/treewriter.so -> lib/writers
> copying build/lib.linux-i686-2.5/amara/xpath/_datatypes.so -> lib/xpath
> copying build/lib.linux-i686-2.5/amara/xpath/locationpaths/_axes.so ->
> lib/xpath/locationpaths
> copying build/lib.linux-i686-2.5/amara/xpath/locationpaths/_nodetests.so ->
> lib/xpath/locationpaths
> copying build/lib.linux-i686-2.5/amara/xpath/locationpaths/_paths.so ->
> lib/xpath/locationpaths
> copying build/lib.linux-i686-2.5/amara/xpath/parser/_xpathparser.so ->
> lib/xpath/parser
> copying build/lib.linux-i686-2.5/amara/xslt/expressions/_avt.so ->
> lib/xslt/expressions
> copying build/lib.linux-i686-2.5/amara/xslt/functions/_functions.so ->
> lib/xslt/functions
> copying build/lib.linux-i686-2.5/amara/xslt/xpatterns/_parser.so ->
> lib/xslt/xpatterns
> copying build/lib.linux-i686-2.5/amara/xslt/tree/_tree.so -> lib/xslt/tree
> Creating /tmp/am/develop-eggs/tmpGSz-Vhbuild/Amara.egg-link (link to .)
>
> Installed /tmp/am/amara_hg
>
> Because this distribution was installed --multi-version, before you can
> import modules from this package in an application, you will need to
> 'import pkg_resources' and then use a 'require()' call similar to one of
> these examples, in order to select the desired version:
>
>    pkg_resources.require("Amara")  # latest installed version
>    pkg_resources.require("Amara==2.0a2")  # this exact version
>    pkg_resources.require("Amara>=2.0a2")  # this version or higher
>
>
> Note also that the installation directory must be on sys.path at runtime for
> this to work.  (e.g. by being the application's script directory, by being
> on
> PYTHONPATH, or by being added to sys.path by your code.)
>
> Installing 'zc.recipe.egg'.
> We have the best distribution that satisfies 'zc.recipe.egg'.
> Picked: zc.recipe.egg = 1.2.2
>
> Configuration data:
> [amara2]
> _b = /tmp/am/bin
> _d = /tmp/am/develop-eggs
> _e = /var/zope/downloads/eggs
> bin-directory = /tmp/am/bin
> develop-eggs-directory = /tmp/am/develop-eggs
> eggs = Amara
> eggs-directory = /var/zope/downloads/eggs
> executable = /usr/bin/python2.5
> interpreter = amara_py
> recipe = zc.recipe.egg
> [buildout]
> bin-directory = /tmp/am/bin
> develop = amara_hg
> develop-eggs-directory = /tmp/am/develop-eggs
> directory = /tmp/am
> download-directory = /var/zope/downloads
> eggs-directory = /var/zope/downloads/eggs
> executable = /usr/bin/python2.5
> installed = /tmp/am/.installed.cfg
> log-format =
> log-level = INFO
> newest = true
> offline = false
> parts = amara2
> parts-directory = /tmp/am/parts
> python = buildout
> verbosity = 20
>
> Installing amara2.
> Installing 'Amara'.
> We have a develop egg: Amara 2.0a2
> Generated interpreter '/tmp/am/bin/amara_py'.
>
> Y si miro amara_py ahí está amara_hg:
>
> erral@lindari:/tmp/am$ head bin/amara_py
> #!/usr/bin/python2.5
>
> import sys
>
> sys.path[0:0] = [
>  '/tmp/am/amara_hg',
>  ]
>
> _interactive = True
> if len(sys.argv) > 1:
> erral@lindari:/tmp/am$
>
>
>>
>> Problema 2:
>> Ahora quiero prepararlo también para que el usuario sólo tenga que
>> ejecutar el buildout y éste haga el clone del repositorio. Pero la
>> parte que tiene que construir el egg siempre intenta descargarlo con
>> easy_install en lugar de usar el fuente descargado del repositorio por
>> mercurialrecipe.
>>
>> ### buildout.conf con mercurialrecipe
>>
>> [buildout]
>> parts = amara amara2
>>
>> [amara]
>> recipe = mercurialrecipe
>> repository =  http://bitbucket.org/uche/amara/
>>
>> [amara2]
>> recipe = zc.recipe.egg
>> interpreter = python
>> eggs = Amara
>> develop = ${amara:location}
>
> Parece que la receta de mercualrecipe se llama MercurialRecipe, y esto es
> case-sensitive.
>
> No puedes añadir como develop-eggs checkouts que hacen unas determinadas
> recetas, salvo que la propia receta te dé esa posibilidad, por lo que
> tendrás que utilizar la opción "extra-paths" de zc.recipe.egg para incluir
> el clone de amara en el intérprete que se genera:
>
> [buildout]
> parts = amara amara2
>
> [amara]
> recipe = MercurialRecipe
> repository =  http://bitbucket.org/uche/amara/
>
> [amara2]
> recipe = zc.recipe.egg
> interpreter = python
> eggs =
> extra-paths = ${amara:location}
>
>

Con extra-paths lo he intentado, pero veo que se añade la línea para
el sys.path [1] , pero cuando intenta instalar el egg no lo encuentra
y intenta bajarlo de internet con easy_install en lugar de construirlo
con el fuente que ha clonado mercurial.


[1]
extra-paths = /home/lm/dev/builouts/AmaraMercurial/extra-paths =
/home/lm/dev/builouts/AmaraMercurial/parts/amara

[2]
Installing amara2.
Installing 'amara'.
We have no distributions for amara that satisfies 'amara'.


-- lm

>
> Saludos,
>
>
> Mikel
>
>
> --
> Mikel Larreategi
> [email protected]
>
> CodeSyntax
> Azitaingo Industrialdea 3 K
> E-20600 Eibar
> Tel: (+34) 943 82 17 80
> _______________________________________________
> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.