2010-09-10 2 views
2

У меня есть setup.py в проекте 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 
) 

Почему Buildout не добавить, что сценарий к 'bin /'? Могу ли я разработать скрипты (а не яйца) с помощью buildout?

Мой 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 

ответ

4

На данный момент, это ограничение Buildout: он не понимает, "сценарий =" из вашего setup.py. Это делает понимать «console_scripts =» так называемую «точку входа» из setuptools. Google для этого или посмотреть на существующий проект, который имеет его.

У меня есть исправление для создания, чтобы он поддерживал «scripts =», но это еще не принято для включения.

+0

Решение вполне подходит. Спасибо! – DenisKolodin

+0

Пример: http://www.oreillynet.com/onlamp/blog/2008/01/setuptools_tip_script_creation.html – DenisKolodin

+0

Возможно ли это сделать с distutils? – Epeli

0

Я просто сделаю настоящий пример.

Пример setup.py

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

Пример 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 

Примечание: main_function это имя функции (может любое имя) из модуля скрипта.

Смежные вопросы