原始消息(现已过时):
运行 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 编程的第一件事的人来说,那里可能有一些非常明显的东西,但不幸的是,这对我来说都是天方夜谭。 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 毕竟没有正确安装。所以我回到原点。
最佳答案
(请参阅下面针对您更新的问题所做的修改)
您的机器上没有“gcc4.0”编译器可执行文件,或者没有正确的版本,或者安装在 python 无法找到/使用的位置。 XCode/Developer Tools(include 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 上自己编译它,为此,您需要在系统路径中提供程序“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
可执行文件。
让我们了解您的最新进展!
关于python - 为什么我不能安装 psycopg2? (Python 2.6.4、PostgreSQL 8.4、OS X 10.6.3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3029274/