3

原始信息(现已过时):

运行 python setup.py install 后,我得到以下信息:

Warning: Unable to find 'pg_config' filebuilding 'psycopg2._psycopg' extension
gcc-4.0 -arch ppc -arch i386 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -   DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.1 (dt dec ext pq3)" -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I. -c psycopg/psycopgmodule.c -o build/temp.macosx-10.3-fat-2.6/psycopg/psycopgmodule.o
unable to execute gcc-4.0: No such file or directory
error: command 'gcc-4.0' failed with exit status 1

对于知道后端 Web 编程的第一件事的人来说,那里可能有一些非常明显的东西,但不幸的是,这对我来说都是 gobbledegook。psycopg2 文档没有帮助。


6 月 12 日上旬更新:更新我的所有软件后,错误消息已更改。

现在,当我运行“python setup.py install”时,我得到以下信息:

Warning: Unable to find 'pg_config' filebuilding 'psycopg2._psycopg' extension
gcc-4.0 -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -O3 -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.2.1 (dt dec ext pq3)" -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 -DHAVE_PQFREEMEM=1 -DHAVE_PQPROTOCOL3=1 -I/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -I. -c psycopg/psycopgmodule.c -o build/temp.macosx-10.3-fat-2.6/psycopg/psycopgmodule.o

接下来是一长串其他错误消息。

当我将“gcc-4.0”放入终端时,它可能会或可能不相关,它会返回:

i686-apple-darwin10-gcc-4.0.1: no input files

6 月 12 日格林威治标准时间 12:41 更新:我认为 macports 安装已经成功,但是当我尝试运行一个站点时,它以以下错误结束:

raise ImproperlyConfigured("Error loading psycopg2 module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2

所以我想这意味着 psycopg2 毕竟没有正确安装。所以我回到第一方。

4

5 回答 5

8

有关您更新的问题,请参阅下面的编辑

您的机器上没有“gcc4.0”编译器可执行文件,或者正确的版本,或者安装在 python 无法找到/使​​用的位置。XCode/Developer Tools(包括 GCC)应该在您的原始 OSX 安装 DVD 上。

既然你谦虚到可以称自己为新手,这里有一点智慧......解决这个错误真的与后端 Web 开发无关,因为它是你的本地开发环境(你的机器和所有软件作为它已配置和安装)这就是问题所在。像这样破译 gobbledegook 的最佳技巧是开始在谷歌上搜索你以前从未听说过的东西的关键字。如果我站在你的立场上,这条错误消息会告诉我“去找出 gcc4.0 到底是什么。然后,当我知道它是什么、它做了什么以及为什么 python 需要它时,我就会弄清楚为什么python在我的电脑上找不到它,然后我做点什么。” 解决这类问题的满足感并不是每个人都能得到满足,但这是肯定的。

所有这些问题的答案是这样的:psycopg2 是一个用 C 语言编写的 python 扩展。python 的许多扩展都是用 C 编写的,而不是 python,因为 C 比 python 的优化程度更高。实际上,这就是 Python 解释器本身的编写方式。C 语言代码必须在可用之前进行编译(与解释的 Python 代码不同)),在这种情况下,您需要的编译器是 gcc4.0。现在,也许如果您使用的是 Windows 或 Linux,psycopg2 的编译版本可能已经可用,并且您不需要安装 GCC,因为您不必编译它来使用它(它已经编译为你)。但是,您似乎必须在 OS X 上自己编译它,为此,您需要在系统 PATH 中提供程序“gcc4.0”,以便您尝试运行的安装脚本可以找到并使用它。在 OS X 上,您可以从计算机随附的原始安装 DVD 中获取它。将它们弹出驱动器并找到开发人员工具安装程序。安装完成后,您应该能够通过尝试运行命令“gcc4.0”来检查是否安装了 GCC 4.0 编译器

编辑您的更新

看起来您现在已经很好地安装了 GCC 4.0 编译器!干得好。当你看到这个:

>gcc4.0
i686-apple-darwin10-gcc-4.0.1: no input files

该输出是编译器告诉你它的确切版本,然后告诉你你没有给它参数,所以它不会为你做任何事情。没关系,因为您的 psycopg2 设置脚本将调用它,而不是您直接调用它。

接下来,看起来 psycopg2 预计您也应该安装 PostgreSQL 服务器开发库。由于我看到您现在正在使用 MacPorts,因此您应该能够使用以下命令轻松安装这些库:

sudo port install postgresql-server-devel

这应该会为您pg_config提供安装程序正在寻找的丢失的可执行文件。

让我们了解您的最新进展!

于 2010-06-12T16:36:04.327 回答
4

如果您已经从 Enterprise DB 安装了 postgres,您可能只想安装

export PATH=$PATH:/Library/PostgreSQL/8.4/bin

或类似的 - 取决于您拥有的版本。

如果它抱怨

cc1: error: unrecognized command line option "-Wno-long-double"

那么它不喜欢你的新 gcc - 你可以通过执行以下操作覆盖你的 gcc 以强制它使用 gcc4.0:

alias gcc=/usr/bin/gcc-4.0

然后再次重新运行您的easy_install。

于 2010-07-06T15:36:45.723 回答
3

我认为你让它变得比它必须的更难。我建议不要直接运行 setup.py,而是让 MacPorts 为您执行此操作:

sudo port install py26-psycopg2

于 2010-06-12T18:29:47.313 回答
2

我敢肯定,我们都不愿意忽视“非常明显”,所以在安装新编译器之前也许值得检查一下。在这种情况下,可能是该人的 Mac 上未安装 PostgreSQL。因此 psycopg2 找不到该数据库的较新版本附带的“pg_config”程序,从而导致发出警告消息“无法找到 'pg_config'”。

因此,在摆弄新的编译器或开发者工具链的任何其他部分之前,首先检查并查看您是否安装了 PostgreSQL。如果你这样做了,那么找到“pg_config”程序,并在 psycopg 发行版的“setup.cfg”文件中设置该路径。然后运行“python setup.py install”并查看是否收到相同的错误消息。希望它只是开始“编译”;但如果没有,那么您将有理由执行上述更困难的程序。

于 2011-02-09T00:13:49.977 回答
2
  1. 安装 PostgreSQL for Mac - http://www.postgresql.org/download/macosx

  2. 为 psycopg2 安装设置新 PostgreSQL 位置的路径:

PATH=$PATH:/Library/PostgreSQL/9.0/bin/ sudo easy_install psycopg2
于 2011-10-01T04:14:50.367 回答