Установите pycairo или py2cairo, используя buildout - PullRequest
1 голос
/ 09 сентября 2011

Есть ли у кого-нибудь опыт установки cairo для django с помощью buildout? Он установит pycairo или py2cairo (первый для python> 3.0, последний для python 2.6, который я использую)

Я нашел 2 рецепта, чтобы использовать их для установки, оба они дают мне ошибки, в buildout.cfg У меня их как 2 части (конечно, пробовал их отдельно, а не вместе). Ошибки совершенно разные, но результат тот же: я не могу установить cairo с помощью buildout .......

на основе: http://pypi.python.org/pypi/tl.buildout_gtk/

[cairo_tl]
recipe = tl.buildout_gtk
#pycairo-url = http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
pycairo-url =   http://cairographics.org/releases/py2cairo-1.8.10.tar.gz
pycairo-md5sum = http://cairographics.org/releases/py2cairo-1.8.10.tar.gz.md5

на основе: https://bitbucket.org/lgs/yaco.recipe.pycairo

[cairo_yaco]  
recipe = yaco.recipe.pycairo  
find-links = http://pypi.python.org/pypi/yaco.recipe.pycairo/0.1.1  
#find-links = http://pypi.python.org/pypi/yaco.recipe.pycairo/0.1  
# pkg-config-path ?

Оба требуют локальной установки cairo (pycairo и py2cairo зависят от этого): так что используйте на сервере:

sudo apt-get install libcairo2-dev

Часть, использующая tl.buildout_gtk:

Использование py2cairo-1.10.0 или pycairo-1.8.2 дает мне несоответствие контрольной суммы MD5 (см. доступные выпуски: http://cairographics.org/releases/) например:

Error: MD5 checksum mismatch downloading 'http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2'

или

Error: MD5 checksum mismatch downloading 'http://cairographics.org/releases/py2cairo-1.8.10.tar.gz'

Часть, исполняющая роль yaco:

Я почти уверен, что эта часть не настроена правильно (pkg-config-path ссылается на локальный пакет cairo), но я даже не дохожу до этого. Выдает ошибку:

DistributionNotFound: zc.recipe.cmmi

Однако это установлено в яйцах

Кстати, у меня была такая же головная боль, когда я пытался установить PIL путем компоновки, которую я решил, комбинируя множество опций и сообщений в интернете, а также много времени, проб и ошибок. Если кто-то захочет узнать, как я, наконец, получил это, просто спросите, и я опубликую его. (Я считаю, что myselve по-прежнему является стартером Django, поэтому я точно не знаю, заинтересован ли кто-либо в этом решении)

PIL не имеет всех параметров, которые я нашел в Каире, поэтому я начал использовать Каир. На моем локальном ПК все работает нормально (рабочий стол Ubuntu), на моем сервере (сервер Ubuntu) я не могу заставить его работать ...... Любые другие варианты для создания рисунков на лету ..... (например, matplotlib ...), дайте мне знать.

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

Уверен, что вы должны задать настоящий хэш md5 для опции pycairo-md5 вместо строки с некоторым URL-адресом.

1 голос
/ 09 сентября 2011

Я бы по возможности избегал специализированных рецептов, подобных этим двум. Есть некоторые случаи, когда действительно нужен специальный рецепт, но это случаи, когда зависимость настолько вопиюще эксцентрична, что не может использоваться ни один общий шаблон сборки / установки. Я не знаю pycairo, так что это может быть дело.

Но прежде чем предположить, что это так, попробуйте следующее. Всегда сначала пытайтесь использовать яйцо, добавляя его к опции eggs соответствующей части сборки. Если это не сработает, обновите ваш вопрос этими деталями, а затем попробуйте добавить отдельную деталь zc.recipe.egg с опциями сборки , которая может помочь в успешной сборке дистрибутива. Если это не сработает или в дистрибутиве используется система сборки ./configure && make && make install (AKA "CMMI"), обновите свой вопрос с этими подробностями, а затем попробуйте использовать zc.recipe.cmmi для сборки пакета, после чего вы можно использовать опцию extra-paths вашей детали zc.recipe.egg для включения соответствующих битов детали CMMI (extra-paths = ${cmmi-part:location}/weird/path/to/python/modules).

Это общий танец для получения распределений с плохим / странным поведением. Если это не сработает, то может потребоваться специализированный рецепт, но в целом есть способ заставить его работать с вышеперечисленным, и это будет гораздо более ремонтопригодным.

...