强制setup.py使用我的自定义编译器

pyC*_*hon 5 c++ python macos macports

我正在尝试使用macports版本的gcc编译setup.py来编译c ++代码.问题是我试图构建的代码,不支持mac的默认clang,这是较新的osx版本的默认gcc.

我创建了一个自定义setup.cfg文件

setup.cfg

[build_ext] 
compiler=gcc-mp-4.8
Run Code Online (Sandbox Code Playgroud)

但是,当我运行时,python setup.py build_ext我得到以下错误

运行build_ext

error: don't know how to compile C/C++ code on platform 'posix' with 'gcc-mp-4.8' compiler
Run Code Online (Sandbox Code Playgroud)

如何让setup.py使用我的gcc版本gcc-mp-4.8

目前setup.py默认使用/usr/bin/clang,当我键入gcc -v它时显示它使用的是gcc版本4.8.2

l'L*_*L'l 8

根据--compiler我的理解,该选项需要"unix","msvc","cygwin","mingw32","bcpp"或"emx".您可以尝试通过指定CC环境变量来设置编译器名称.

内部setup.py尝试设置os.environ:

os.environ["CC"] = "gcc-4.8"
os.environ["CXX"] = "gcc-4.8"
Run Code Online (Sandbox Code Playgroud)

要不就:

CC=gcc
Run Code Online (Sandbox Code Playgroud)

g++ 会像这样使用;

os.environ["CXX"] = "g++-4.7"
Run Code Online (Sandbox Code Playgroud)