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