Python/Pip C 包 PyProj 无法使用 GCC 编译
Python/Pip C package PyProj fails to compile with GCC
我正在尝试安装 PyProj on a WebFaction VM, via virtualenv & pip。我收到编译错误。我正在使用这个命令:
$ pip install pyproj
有很多输出,终止于此:
src/geodesic.c: In function ‘InverseStart’:
src/geodesic.c:1093: error: ISO C90 forbids mixed declarations and code
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/home/<user>/webapps/<webapp>/env/py34/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ow1vcsjk/pyproj/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-cl2pbd20-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/<user>/webapps/<webapp>/env/py34/include/site/python3.4" failed with error code 1 in /tmp/pip-build-ow1vcsjk/pyproj
我不太确定从哪里开始。我从 this SO question 了解到,问题在于 PyProj 中 C90 的兼容性,我可能会针对 C99 进行编译。只是猜测。
如前所述,这是在具有 shell 访问权限的远程虚拟机上。我的开发机器 (Mac) 上有一个匹配的 Virtualenv,它编译没有问题。但是,有不同的编译器:
开发:
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
虚拟机:
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
想法?提前致谢。
问题是您 VM 上的 GCC 版本默认为 ISO C90 标准,但 pyproj 代码与该标准不兼容。要强制 GCC 使用 C99,您需要相应地设置 CFLAGS 环境变量,try
export CFLAGS='-std=c99'
然后 运行 再 pip install pyproj
。我在 healpy 上遇到了同样的问题,这对我有用。
我正在尝试安装 PyProj on a WebFaction VM, via virtualenv & pip。我收到编译错误。我正在使用这个命令:
$ pip install pyproj
有很多输出,终止于此:
src/geodesic.c: In function ‘InverseStart’:
src/geodesic.c:1093: error: ISO C90 forbids mixed declarations and code
error: command 'gcc' failed with exit status 1
----------------------------------------
Command "/home/<user>/webapps/<webapp>/env/py34/bin/python3.4 -c "import setuptools, tokenize;__file__='/tmp/pip-build-ow1vcsjk/pyproj/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-cl2pbd20-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/<user>/webapps/<webapp>/env/py34/include/site/python3.4" failed with error code 1 in /tmp/pip-build-ow1vcsjk/pyproj
我不太确定从哪里开始。我从 this SO question 了解到,问题在于 PyProj 中 C90 的兼容性,我可能会针对 C99 进行编译。只是猜测。
如前所述,这是在具有 shell 访问权限的远程虚拟机上。我的开发机器 (Mac) 上有一个匹配的 Virtualenv,它编译没有问题。但是,有不同的编译器:
开发:
$ gcc --version
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn)
虚拟机:
$ gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-11)
想法?提前致谢。
问题是您 VM 上的 GCC 版本默认为 ISO C90 标准,但 pyproj 代码与该标准不兼容。要强制 GCC 使用 C99,您需要相应地设置 CFLAGS 环境变量,try
export CFLAGS='-std=c99'
然后 运行 再 pip install pyproj
。我在 healpy 上遇到了同样的问题,这对我有用。