您可以通过各种方式编译Python.我想知道我的Python编译的选项.
具体的用例:我的Python是用readline编译的吗?我知道我可以通过"import readline"来看到这个,但是我希望看到我的Python二进制文件的编译设置列表.
编辑:我的意思是Python可执行文件,而不是我自己编写的源代码.
我知道setup.py使用与构建python相同的CFLAGS.我有一个我们的C扩展,即segfaulting.我需要构建它而不是 -O2因为-O2优化了一些值和代码,因此核心文件不足以解决问题.
我只需要修改setup.py,这样-O2就不用了.
我读过的distutils文件,尤其是distutils.ccompiler和distutils.unixcompiler,看看如何添加标记和库,包括,但不知道如何修改默认的gcc标志.
具体来说,这是针对Python 2.5.1上的遗留产品,带有一堆反向端口(Fedora 8,是的,我知道......).不,我无法更改操作系统或python版本,我不能,没有很大的问题,重新编译python.我只需要为一个客户构建一个C扩展,其中一个客户的环境是唯一的一个segfaulting.
当我从setup.py编译我的代码时,它找不到C++ 11包含文件<array>- 但C++ 11编译器功能确实有效.
当我将setup.py生成的相同命令行粘贴到我的shell中时,它完全编译得很好(!)
终端会议:
$ python setup.py build_ext
running build_ext
building 'simple' extension
creating build
creating build/temp.macosx-10.6-intel-3.4
/usr/bin/clang -fno-strict-aliasing -Werror=declaration-after-statement -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -arch i386 -arch x86_64 -g -Isrc -I/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m -c simple.cpp -o build/temp.macosx-10.6-intel-3.4/simple.o -Wno-unused-function -std=c++11
In file included from simple.cpp:289:
./simple.h:2:10: fatal error: 'array' file not found
#include <array>
^
1 error generated.
error: command '/usr/bin/clang' failed with exit status 1
$ /usr/bin/clang -fno-strict-aliasing -Werror=declaration-after-statement …Run Code Online (Sandbox Code Playgroud)