让Django和Buildout工作,但是PIL和Postgres怎么样?

lit*_*m84 5 python postgresql buildout python-imaging-library

我在Mac OSX 10.5.8上.我跟随Jacob Kaplan-Moss关于使用Buildout设置Django的文章: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}
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我可靠地让PIL和Postgres与我的Buildout一起工作吗?非常感谢你提前...我到目前为止所做的一切只会引发各种各样的错误.

jac*_*ian 8

从理论上讲,你应该能够增加PILpsycopg2你的eggs指令:

eggs = myproject
       PIL
       psycopg2
Run Code Online (Sandbox Code Playgroud)

这适用于某些系统和某些情况.

但是,有两个问题可以阻止它在任何地方工作,特别是在OSX上:

  1. PIL包装是......在某种程度上很奇怪,这可能使得从PyPI安装失败.
  2. 这两个PILpsycopg2是C的扩展,这意味着你需要有正确的共享库和头文件之前,你可以建立并安装它们.

修复(1)很简单:只需添加即可

find-links = http://dist.plone.org/thirdparty/
Run Code Online (Sandbox Code Playgroud)

到你的[buildout]部分.Plone人员PIL使用Buildout 维护了Just Works™的鸡蛋.

修复(2)有点复杂和情况下降:你需要确保你已经获得了所有各种头文件PILpsycopg2依赖它们.

psycopg2

如果您已经从PostgeSQL for Mac发行版安装PostgreSQL (我推荐),那么它应该已经为您正确安装了头文件并且psycopg2可以构建好.

如果您已从源代码安装PostgreSQL,那么您将拥有头文件; psycopg2应该轻松建立.

但是,如果你以其他方式安装PostgreSQL - fink,ports,homebrew - 那么你需要小心并确保你已经安装了开发文件.在某些软件包系统中,有一个postgresql-dev带有开发头的独立软件包; 其他人自动安装.

如果您已正确完成此操作,则应该能够运行pg_config并验证INCLUDEDIR设置是否已设置并正确指向头文件(在libpq目录中查找INCLUDEDIR目录).

PIL

PIL更加棘手,因为它依赖于更多的库.至少你需要安装libjpeglibpng.如果您使用的是10.6,那么它们应该已经为您安装; 如果没有,最简单的事情可能是从源代码下载并安装它们:libpng,libjpeg.