我想让Python脚本为运行脚本的Python解释器的任何版本构建Python C扩展模块。
为此,我想动态获取相关的C编译器标志 - 实现此目的的一种方法是获取python-config
CLI工具的输出,例如:像这样:
subprocess.check_output(["python-config", "--includes"])
不幸的是,在安装了多个Python版本的系统上,此方法可能找不到正确的python-config
- 也就是说,与当前运行的Python版本相关联的python-config
。 (另外,从方法论上来说,这有点难看。)
我是否有某种方式可以从Python中获取此信息 - 或许像Numpy的get_include
?
答案 0 :(得分:1)
...提供访问python-config
提供的相同信息的方法,包括但不限于:
get_python_version()
(按照您的想法行事),get_paths()
(产生带有许多有用路径的dict
),get_config_var()
和get_config_vars()
(分别返回字符串和巨大的dict
来筛选所有低级配置选项),get_config_h_filename()
(产生源config.h
文件),parse_config_h()
(仅适用于最勇敢的配置管道工) ......对于任何寻求python-config
价值而不必经历令人尴尬的subprocess
舞蹈来获得它的人来说,前两个可能就足够了。