Django和Buildout可用,但PIL和Postgres呢?
我现在用的是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 个回答
对上面(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
理论上,你只需要把 PIL
和 psycopg2
加到你的 eggs
指令里就行了:
eggs = myproject
PIL
psycopg2
在某些系统和情况下,这样做是有效的。
不过,有两个问题可能会导致它在所有地方都无法工作,尤其是在 OSX 系统上:
PIL
的打包方式有点奇怪,这可能会导致从 PyPI 安装失败。PIL
和psycopg2
都是 C 扩展,这意味着在你能构建和安装它们之前,你需要有正确的共享库和头文件。
解决第一个问题很简单:只需添加
find-links = http://dist.plone.org/thirdparty/
到你的 [buildout]
部分。Plone 的团队维护了一个可以和 Buildout 一起使用的 PIL
,它能正常工作。
解决第二个问题就复杂一些,具体情况也有所不同:你需要确保你有 PIL
和 psycopg2
依赖的所有头文件。
psycopg2
如果你是从 PostgreSQL for Mac 的发行版安装 PostgreSQL(我推荐这样做),那么它应该已经为你正确安装了头文件,psycopg2
也能顺利构建。
如果你是从源代码安装 PostgreSQL,那么你应该已经有了头文件;psycopg2
应该也能轻松构建。
但是,如果你是通过其他方式安装 PostgreSQL,比如 fink、ports 或 homebrew,那么你需要小心,确保你安装了开发文件。在某些包管理系统中,有一个单独的 postgresql-dev
包包含开发头文件;而其他系统则会自动安装这些文件。
如果你做对了,你应该能运行 pg_config
并确认 INCLUDEDIR
设置正确,并且指向头文件(在 INCLUDEDIR
目录中找 libpq
目录)。
PIL
PIL
的情况要复杂得多,因为它依赖的库更多。至少你需要安装 libjpeg
和 libpng
。如果你在 10.6 系统上,它们应该已经为你安装好了;如果没有,最简单的办法可能是从源代码下载并安装它们:libpng,libjpeg。