[Distutils] buildout config question

Olaf Conradi olaf at conradi.org
Sun Jan 10 00:01:45 CET 2010


Hello,

Am fiddling with a buildout.cfg for my project, but I don't understand
something in script generation.
It seems my console script is generated twice.
And in that second round it adds pylint to the script of my program
and not just the pylint script??

This is the config I have

My setup.py contains:
setup(
    # ..
    entry_points="""
                 [console_scripts]
                 bank2ledger = bank2ledger.main:main
                 """
)

My buildout.cfg

[buildout]
develop = .
parts = bank2ledger pylint
# pyxdg is not available in PyPI
find-links = http://www.freedesktop.org/~lanius/pyxdg-0.18.tar.gz

[bank2ledger]
recipe = zc.recipe.egg:scripts
eggs =
    bank2ledger
    pyxdg

[pylint]
recipe = zc.recipe.egg
eggs =
    pylint
    ${bank2ledger:eggs}
entry-points = pylint=pylint.lint:Run
arguments = sys.argv[1:]+[
    '--output-format=parseable',
    'bank2ledger']

Running buildout:

$ ./bin/buildout
Develop: '/home/olaf/Project/Bank2Ledger/.'
Updating bank2ledger.
Generated script '/home/olaf/Project/Bank2Ledger/bin/bank2ledger'.
Updating pylint.
Generated script '/home/olaf/Project/Bank2Ledger/bin/bank2ledger'.

When it creates my script the first time it is what I want:

import sys
sys.path[0:0] = [
  '/home/olaf/Project/Bank2Ledger/src',
  '/home/olaf/Project/Bank2Ledger/eggs/pyxdg-0.18-py2.5.egg',
# [snip] a lot more dependencies
  ]

import bank2ledger.main

if __name__ == '__main__':
    bank2ledger.main.main()

However, this scipt is overwitten by the pylint part with:

import sys
sys.path[0:0] = [
  '/home/olaf/Project/Bank2Ledger/eggs/pylint-0.19.0-py2.5.egg',
  '/home/olaf/Project/Bank2Ledger/src',
# [snip], same list of dependencies as above
  ]

import bank2ledger.main

if __name__ == '__main__':
    bank2ledger.main.main(sys.argv[1:]+[
'--output-format=parseable',
'bank2ledger'])


But those arguments I wanted the bin/pylint script to have, not the
main entry point of my program.

The bin/pylint script is what I expect it to be.

How come the bank2ledger script is generated twice?
Am I misunderstanding how to use zc.buildout?

Thanks,
 -Olaf


More information about the Distutils-SIG mailing list