2010-09-10 20 views
2

Je setup.py dans un projet buildout:Comment ajouter un script à un projet de buildout?

from distutils.core import setup 
setup(name='', 
    version='1.0', 
    author='Denis Kolodin', 
    author_email='...', 
    url='...', 
    scripts = ['scripts/myscript.py'], # The script I want to add to 'bin/' dir 
) 

Pourquoi buildout ne pas ajouter ce script à 'bin /'? Puis-je développer des scripts (pas des œufs) avec buildout?

Mon buildout.cfg:

[buildout] 
develop = . 
parts = python scripts 

[python] 
recipe = zc.recipe.egg 
interpreter = python 
eggs = marketwizard > 0.2.0 
     jinja2 

[scripts] 
recipe = z3c.recipe.scripts 

Répondre

4

À l'heure actuelle, c'est une limitation de buildout: il ne comprend pas le "script =" de votre setup.py. Il ne comprendre le "console_scripts =" soi-disant "point d'entrée" de setuptools. Google pour cela ou regarder un projet existant qui l'a.

J'ai un correctif pour buildout pour le faire supporter "scripts =", mais cela n'a pas encore été accepté pour l'inclusion.

+0

La solution est tout à fait appropriée. Je vous remercie! – DenisKolodin

+0

Exemple sur: http://www.oreillynet.com/onlamp/blog/2008/01/setuptools_tip_script_creation.html – DenisKolodin

+0

Est-il actuellement possible de faire cela avec distutils? – Epeli

0

Je viens de faire un vrai exemple.

Exemple setup.py

setup(name='', 
    version='1.0', 
    author='Denis Kolodin', 
    author_email='...', 
    url='...', 
    entry_points={ 
    "console_scripts": [ 
     'myscript = scripts.myscript:main_function', 
    ] 
    } 
) 

Exemple buildout.cfg

[buildout] 
develop = . 
parts = python scripts 

[python] 
recipe = zc.recipe.egg 
interpreter = python 
eggs = marketwizard > 0.2.0 
    jinja2 

[scripts] 
recipe = zc.recipe.egg:scripts 
# to be available in your script 
eggs = ${python:eggs} 
scripts = myscript 

Note: ce main_function est le nom de la fonction (pourrait ne importe quel nom) de votre module de script.