Джанго и Buildout работают, но как насчет PIL и Postgres? - PullRequest
5 голосов
/ 06 января 2010

Я на Mac OSX 10.5.8. Я следил за статьей Джейкоба Каплана-Мосса о настройке Django с помощью Buildout: http://jacobian.org/writing/django-apps-with-buildout/

Наконец-то у меня работает этот Buildout! ... но мне сейчас нужны PIL и Postgres для полностью изолированной области разработки Django. Я пытался изменить свой buildout.cfg с помощью учебных пособий, которые я читал в интернете, но просто не могу найти, как это сделать, без ошибок. Я чувствую, что PIL и Postgres - следующие вещи для завершения этой небольшой настройки, так что я могу просто продолжить с этим ... (Кстати, я не эксперт в этом, я из PHP-фона) Мой текущий buildout.cfg выглядит так:

[buildout]
parts = python django
develop = .
eggs = myproject

[python]
recipe = zc.recipe.egg
interpreter = python
eggs = ${buildout:eggs}

[django]
recipe = djangorecipe
version = 1.1.1
project = myproject
projectegg = myproject
settings = testsettings
test = myproject
eggs = ${buildout:eggs}

Может ли кто-нибудь помочь мне получить PIL и Postgres для работы с моим Buildout? Заранее большое спасибо ... Все, что я до сих пор пробовал, просто выбрасывает всевозможные ошибки.

Ответы [ 2 ]

8 голосов
/ 18 января 2010

Теоретически вы можете просто добавить PIL и psycopg2 в директиву eggs:

eggs = myproject
       PIL
       psycopg2

Это работает в некоторых системах и в некоторых ситуациях.

Однако есть две проблемы, которые могут помешать его работе везде, особенно в OSX:

  1. PIL ... в некотором роде странная, и это может привести к сбою установки из PyPI.
  2. Оба PIL и psycopg2 являются расширениями C, что означает, что вам нужно иметь правильные общие библиотеки и заголовочные файлы, прежде чем вы сможете их собрать и установить.

Исправить (1) легко: просто добавьте

find-links = http://dist.plone.org/thirdparty/

В ваш [buildout] раздел. Люди Plone поддерживают PIL с яйцом, что Just Works ™ с Buildout.

Исправление (2) немного сложнее и зависит от ситуации: вам нужно убедиться, что у вас есть все различные заголовочные файлы, от которых зависят PIL и psycopg2.

psycopg2

Если вы установили PostgreSQL из дистрибутива PostgeSQL для Mac (который я рекомендую), то он должен правильно установить файлы заголовков для вас, и psycopg2 будет работать нормально.

Если вы установили PostgreSQL из исходного кода, у вас уже будут файлы заголовков; psycopg2 должно легко строить.

Если, однако, вы установили PostgreSQL другим способом - fink, ports, homebrew - тогда вам нужно быть осторожным и убедиться, что у вас установлены файлы разработки. В некоторых пакетных системах есть отдельный пакет postgresql-dev с заголовками разработки; другие устанавливают их автоматически.

Если вы сделали это правильно, вы сможете запустить pg_config и убедиться, что параметр INCLUDEDIR установлен и правильно указывает на файлы заголовков (ищите каталог libpq в INCLUDEDIR каталог).

PIL

PIL намного сложнее, потому что это зависит от гораздо большего количества библиотек. По крайней мере, вам нужно установить libjpeg и libpng. Если вы на 10.6, они уже должны быть установлены для вас; в противном случае, вероятно, проще всего скачать и установить их из исходного кода: libpng , libjpeg .

0 голосов
/ 31 декабря 2010

расширение (2) выше

PIL работает с дополнительными компонентами, которые можно установить с помощью следующих шагов.

JPG

wget http://www.ijg.org/files/jpegsrc.v8b.tar.gz 
tar xzf jpegsrc.v8b.tar.gz 
cd jpeg-8b/ 
./configure 
make 
sudo make install 

Freetype

http://sourceforge.net/projects/freetype/files/ 
wget http://downloads.sourceforge.net/project/freetype/freetype2/2.4.4/freetype-2.4.4.tar.bz2 
tar xjf freetype-2.4.4.tar.bz2 
cd free* 
./configure 
make 
sudo make install

LittleCMS 1.19 (НЕ 2.0 +)

http://downloads.sourceforge.net/project/lcms/lcms/1.19/lcms-1.19.tar.gz 
tar xzf lcms-1.19.tar.gz 
cd lcms*
./configure 
make 
sudo make install 
...