原始邮件(现已过期):
在运行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工具(它include GCC)应该放在原来的OSX安装dvd上。
既然你谦虚到可以称自己为菜鸟,这里有一块智慧的金块。。。解决此错误实际上与后端web开发无关,因为问题出在您的本地开发环境(您的计算机以及配置和安装的所有软件)。我有最好的技巧来破译像这样的狼吞虎咽的书,就是开始搜索你从未听说过的东西的关键字。如果我站在你的立场上,这个错误信息会让我尖叫“去看看到底是什么gcc4.0。然后,当我知道它是什么,它做什么,以及python为什么需要它时,我就会弄明白python为什么在我的计算机上找不到它,然后我就做了些什么,“解决这些问题的满足感并不是每个人都会发生的,不过,这是肯定的。
所有这些问题的答案是:psycopg2是一个用C语言编写的python扩展。很多python的扩展都是用C编写的,而不是python,因为C比python要优化得多。实际上,python解释器本身就是这样写的。C语言代码在可用之前必须先编译好(不像python代码,python代码的解释是gcc4.0)。现在,如果您使用的是Windows或Linux,那么psycopg2的编译版本可能已经可用,而且您不需要安装GCC,因为您不必编译它来使用它(它已经为您编译好了)。但是,似乎您必须自己在OSX上编译它,为此,您需要在系统路径中提供程序“gcc4.0”,以便您试图运行的安装脚本能够找到并使用它。在OS X上,您可以从电脑附带的原始安装DVD中获取。将它们弹出到驱动器中,并找到开发人员工具安装程序。一旦安装了gcc4.0编译器,您就应该能够通过尝试在任何控制台窗口中运行命令“gcc4.0”来检查是否安装了gcc4.0编译器,并查看它是否安装在您的路径中。
为更新编辑
现在看来您已经很好地安装了GCC 4.0编译器!干得好。当你看到这个:
这个输出是编译器告诉你它的确切版本,然后告诉你你没有给它任何参数,所以,它不会为你做任何事情。这没关系,因为psycopg2安装脚本将调用它,而不是直接调用。
接下来,psycopg2希望您也应该安装PostgreSQL服务器开发库。由于我看到您现在使用的是MacPorts,您应该可以使用以下命令轻松安装这些库:
这将使您丢失安装程序正在寻找的
pg_config
可执行文件。让我们了解你的最新进展!
如果您已经从企业数据库安装了postgres,那么您可能只想
或者类似的-取决于你的版本。
如果它抱怨
然后它不喜欢您的新gcc-您可以覆盖您的gcc来强制它使用gcc4.0,方法是:
然后重新运行easy_安装程序。
我觉得你让事情变得更难了。与其直接运行setup.py,我建议让MacPorts为您执行以下操作:
sudo port install py26-psycopg2
相关问题 更多 >
编程相关推荐