如何获得Python编译的选项列表?

你可以用各种方式编译Python。 我想找出我的Python编译的选项。

具体的用例:我的Python是用readline编译的吗? 我知道我可以通过执行“import readline”来看到这一点,但我希望看到我的Python二进制文件的编译设置列表。

编辑:我的意思是Python可执行文件,而不是我自己编写的源代码。

有一个模块可以查看系统configuration

import sysconfig print(sysconfig.get_config_vars()) 

它提供了一个接口来获取单个variables。

 sysconfig.get_config_var('HAVE_LIBREADLINE') 

编辑:

在python2.7之前,你必须使用

 import distutils.sysconfig print distutils.sysconfig.get_config_vars() 

为了build立在mirk的答案上,为了find在构build过程中实际使用的configuration标志,你正在寻找的值是CONFIG_ARGS

例如,这是Ubuntu编译的Python的输出:

 >>> print distutils.sysconfig.get_config_var('CONFIG_ARGS') '--enable-shared' '--prefix=/usr' '--enable-ipv6' '--enable-unicode=ucs4' '--with-dbmliborder=bdb:gdbm' '--with-system-expat' '--with-system-ffi' '--with-fpe ctl' 'CC=x86_64-linux-gnu-gcc' 'CFLAGS=-D_FORTIFY_SOURCE=2 -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security ' 'LDFLAGS=-Wl,-Bs ymbolic-functions -Wl,-z,relro' 

另一种方法是… Python为每个安装的版本提供脚本…

  ls -l /usr/bin/python*config* 16 Dec 21 2013 /usr/bin/python-config -> python2.7-config 16 Dec 21 2013 /usr/bin/python2-config -> python2.7-config 33 Mar 22 18:57 /usr/bin/python2.7-config -> x86_64-linux-gnu-python2.7-config 16 Mar 23 03:17 /usr/bin/python3-config -> python3.4-config 33 Apr 11 09:15 /usr/bin/python3.4-config -> x86_64-linux-gnu-python3.4-config 34 Apr 11 09:15 /usr/bin/python3.4m-config -> x86_64-linux-gnu-python3.4m-config 17 Mar 23 03:17 /usr/bin/python3m-config -> python3.4m-config python3-config --help Usage: /usr/bin/python3-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--abiflags|--configdir python3-config --prefix /usr 

我的一个系统的答案是:

 --prefix /usr --exec-prefix /usr --includes -I/usr/include/python3.4m -I/usr/include/python3.4m --libs -lpthread -ldl -lutil -lm -lpython3.4m --cflags -I/usr/include/python3.4m -I/usr/include/python3.4m -Wno-unused-result -Werror=declaration-after-statement -g -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes --ldflags -L/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu -L/usr/lib -lpthread -ldl -lutil -lm -lpython3.4m -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions --extension-suffix @SO@ --abiflags m --configdir /usr/lib/python3.4/config-3.4m-x86_64-linux-gnu 

所以如果你需要为bash脚本等设置值,这些命令行工具都可以使用。

要获取PyPy编译的选项列表,请运行

 pypy --info