2010-04-03 1 views
1

Я пытаюсь получить zc.buildout для установки Gunicorn из источника. Используя следующую конфигурацию:Использование zc.buildout, как установить tarball с веб-сайта?

[gunicorn] 
recipe = collective.recipe.distutils 
url = http://github.com/benoitc/gunicorn/tarball/master 

результатов в следующей ошибке:

SystemError: ('Failed', '"/usr/bin/python" setup.py -q install --install- purelib="/mnt/hgfs/Projects/intranation/parts/site-packages" --install-platlib="/mnt/hgfs/Projects/intranation/parts/site-packages"') 

обеспечивая --install-dir или --prefix не помогает.

Есть ли рецепт для zc.buildout, который загружает tarball и устанавливает его с помощью easy_install или аналогичного?

ответ

3

Вы можете «просто» установить его. В командной строке «easy_install http://github.com/benoitc/gunicorn/tarball/master» работает нормально.

Совокупный эквивалент будет иметь зависимость от «gunicorn» (так, чтобы попытка сборки пыталась его установить) и рассказать о том, что ваша ссылка github фактически является пулеметным. Вы делаете это с помощью функции поиска-ссылки:

[buildout] 
    find-links = 
     http://github.com/benoitc/gunicorn/tarball/master#egg=gunicorn 
    parts = console_scripts 


    [console_scripts] 
    recipe = zc.recipe.egg 
    eggs = gunicorn 
+1

Buildout часть этого раствора порвали с текущим Setuptools (> = 0,7, я думаю, тестируемый с 0.9.1 и 2.2.0 билдаутом). Setuptools ожидает, что # в ссылке всегда следует некоторый хеш (например, # md5 = ...). Пока я не нашел работы. –

+0

О, вам больше не нужно использовать хеш, поэтому что-то вроде этого будет работать с никогда не setuptools + buildout -combo: http://github.com/benoitc/gunicorn/tarball/master/gunicorn-1.0.tar.gz –

+0

Эта ссылка '.../master/gunicorn-1.0.tar.gz' отформатирована таким образом, что setuptools автоматически распознает имя пакета и версию. '... # egg = ...' требуется/требуется для случаев, когда имя/версия пакета не очевидна, например, в '.../gunicorn/tarball/master'. Какая там версия? Что такое имя пакета? Setuptools не может знать. –