gpt4 book ai didi

python - 获取 Python 的 LIB 路径

转载 作者:太空狗 更新时间:2023-10-30 01:19:21 26 4
gpt4 key购买 nike

我可以看到 INCLUDE 路径是 sysconfig.get_path('include') .

但我没有看到 LIB 有任何类似的值。

NumPy outright hardcodes it在 Windows 中为 os.path.join(sys.prefix, "libs"),在其他情况下为 get_config_var('LIBDIR')(未记录且在 Windows 中缺失)。

有没有更支持的方式?

最佳答案

因为它不是任何官方规范/文档的一部分,而且,as shown by another回答,有些情况下 sysconfig/distutils.sysconfig .get_config_var() 中没有适当的变量被设置,

在所有情况下可靠地获取它的唯一方法,完全作为构建(例如,即使对于 sourcetree 中的 Python)是委托(delegate)给引用实现。

distutils 中,为编译器设置库路径的逻辑 is located in distutils.commands.build_ext.finalize_options() .所以,这段代码将在构建时没有副作用:

import distutils.command.build_ext    #imports distutils.core, too
d = distutils.core.Distribution()
b = distutils.command.build_ext.build_ext(d) #or `d.get_command_class('build_ext')(d)',
# then it's enough to import distutils.core
b.finalize_options()
print b.library_dirs

注意:

  • 并非结果列表中的所有位置都一定存在。
  • 如果您的setup.py 是基于setuptools 的,请使用setuptools.Distributionsetuptools.command.build_ext 相反,相应地。
  • 如果您将影响结果的任何值传递给 setup(),您也必须将它们传递给此处的 Distribution

由于无法保证您需要传递的附加值集会保持不变,并且只有在构建扩展时才需要该值,

  • 看起来您根本不应该独立获得此值:
    • 如果您正在使用其他构建工具,您应该将 build_ext 子类化并在构建过程中从基本方法中获取值。

关于python - 获取 Python 的 LIB 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47423246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com