0

我在一个共享主机提供商上,试图安装 psycopg2 以便让 Django 启动并使用 psql 运行。

我跑了$ pip install psycopg2

并得到以下错误

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-prototypes 
-fPIC -DPSYCOPG_DEFAULT_PYDATETIME=1 -DPSYCOPG_VERSION="2.5 (dt dec pq3 ext)" 
-DPG_VERSION_HEX=0x080205 -DPSYCOPG_EXTENSIONS=1 -DPSYCOPG_NEW_BOOLEAN=1 
-DHAVE_PQFREEMEM=1 -I/home3/n/norcal/python/include/python2.7 -I. 
-I/usr/local/pgsql-8.2/include -I/usr/local/pgsql-8.2/include/server 
-c psycopg/psycopgmodule.c -o build/temp.linux-i686-2.7/psycopg/psycopgmodule.o 
-Wdeclaration-after-statement

cc1: error: unrecognized option `-Wdeclaration-after-statement'

error: command 'gcc' failed with exit status 1

我做了一些谷歌搜索,发现我可能缺少 python-dev 和 libpq-dev,但我无法找到有关如何安装没有 aptitude 的说明 - 我无法在我的共享托管服务提供商上访问这些说明。

有任何想法吗?

提前一百万谢谢!

4

1 回答 1

0

问题是,-Wdeclaration-after-statement您的 gcc 版本不支持。

一个 hacky 解决方案是从编译命令中删除这个不受支持的选项。更好的解决方案是升级你的 gcc。

收到此错误后,使用 grep 查找declaration-after-statement使用的位置:

$ grep -r "declaration-after-statement" ./virtual_env_dir
virtual_env_dir/build/psycopg2/setup.py: '-Wdeclaration-after-statement')

编辑 setup.py 并注释相应的代码块:

''''
for extension in self.extensions: 
    extension.extra_compile_args.append(
        '-Wdeclaration-after-statement')
''''

通过 重新运行构建$ pip install psycopg2

于 2013-11-20T09:48:50.017 回答