Non c'è modo di fare questo come un singolo passaggio, ma è facile da fare come un processo in due fasi.
Usa:
python bootstrap.py
./bin/buildout install cython
./bin/cpy bootstrap.py
./bin/cpy ./bin/buildout
Il motivo di questo è possibile è perché buildout supporta un'opzione oscura 'installazione', che nessuno mai parla, ma si possibile usarlo, in questo modo:
[buildout]
parts = deps py # <---- Notice we don't depend on cython here
eggs =
whatever
kdist
nark
kivy # <--- But we do have a module that requires cython to build
develop =
.
lib/nark
lib/kivy-dist
[cython] # <---- By calling ./bin/buildout install cython we trigger this
recipe = zc.recipe.egg:script
parts = cython-py
interpreter = cpy # <--- Which makes our dummy ./bin/cpy
eggs =
cython
pyinstaller
[deps]
recipe = zc.recipe.egg:eggs
eggs = ${buildout:eggs}
[py]
recipe = zc.recipe.egg:script
interpreter = py
eggs = ${buildout:eggs}
La cosa carina di questo approccio è che eseguire buildout una seconda volta cancella la directory bin così alla fine della giornata, ti rimane una directory bin che ooks come questo:
$ ls bin/
buildout garden py
Nessun pacchetti rimanenti che possono o non possono appendere intorno nella vostra virtualenv e avvitare le cose più tardi. Questo è il motivo per cui stiamo usando buildout, in primo luogo, giusto?
... naturalmente, se si desidera che cython si blocchi, si attacca anche alle dipendenze in alto.
Sei sicuro che Cython sia installato correttamente e hai impostato la variabile di ambiente 'PYTHONPATH' per includere la dir dove vivono i moduli Cython? –
Intendevi a livello di sistema? Questo renderà impossibile creare questo buildout su un sistema senza cython ...? –
Cosa intendi per "livello di sistema"? –