Django和Buildout可用,但PIL和Postgres呢?

5 投票
2 回答
959 浏览
提问于 2025-04-15 17:42

我现在用的是Mac OSX 10.5.8。我按照Jacob Kaplan-Moss的文章设置了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 个回答

0

对上面(2)的进一步说明

PIL(Python Imaging Library)可以和一些额外的组件一起使用,这些组件可以通过以下步骤安装。

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 
8

理论上,你只需要把 PILpsycopg2 加到你的 eggs 指令里就行了:

eggs = myproject
       PIL
       psycopg2

在某些系统和情况下,这样做是有效的。

不过,有两个问题可能会导致它在所有地方都无法工作,尤其是在 OSX 系统上:

  1. PIL 的打包方式有点奇怪,这可能会导致从 PyPI 安装失败。
  2. PILpsycopg2 都是 C 扩展,这意味着在你能构建和安装它们之前,你需要有正确的共享库和头文件。

解决第一个问题很简单:只需添加

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

到你的 [buildout] 部分。Plone 的团队维护了一个可以和 Buildout 一起使用的 PIL,它能正常工作。

解决第二个问题就复杂一些,具体情况也有所不同:你需要确保你有 PILpsycopg2 依赖的所有头文件。

psycopg2

如果你是从 PostgreSQL for Mac 的发行版安装 PostgreSQL(我推荐这样做),那么它应该已经为你正确安装了头文件,psycopg2 也能顺利构建。

如果你是从源代码安装 PostgreSQL,那么你应该已经有了头文件;psycopg2 应该也能轻松构建。

但是,如果你是通过其他方式安装 PostgreSQL,比如 fink、ports 或 homebrew,那么你需要小心,确保你安装了开发文件。在某些包管理系统中,有一个单独的 postgresql-dev 包包含开发头文件;而其他系统则会自动安装这些文件。

如果你做对了,你应该能运行 pg_config 并确认 INCLUDEDIR 设置正确,并且指向头文件(在 INCLUDEDIR 目录中找 libpq 目录)。

PIL

PIL 的情况要复杂得多,因为它依赖的库更多。至少你需要安装 libjpeglibpng。如果你在 10.6 系统上,它们应该已经为你安装好了;如果没有,最简单的办法可能是从源代码下载并安装它们:libpnglibjpeg

撰写回答