我看到那INCLUDE条路是sysconfig.get_path('include')。
INCLUDE
sysconfig.get_path('include')
但我看不到有任何类似的价值LIB。
LIB
NumPy直接像os.path.join(sys.prefix, "libs")Windows中那样对其进行硬编码,否则(在Windows中get_config_var('LIBDIR')没有记录和丢失)。
os.path.join(sys.prefix, "libs")
get_config_var('LIBDIR')
还有更多受支持的方法吗?
由于它不是任何正式规范/文档的一部分,并且如另一个答案所示,在某些情况下,sysconfig/distutils.sysconfig .get_config_var()中没有设置适当的变量,
sysconfig
distutils.sysconfig
.get_config_var()
只有这样,才能可靠地得到它在所有情况下, 正是 作为构建会(例如,即使在sourcetree一个Python)是委托给的参考实现。
在中distutils,为编译器设置库路径的逻辑位于中distutils.commands.build_ext.finalize_options()。因此,此代码将在构建时获得任何副作用:
distutils
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.Distribution
setuptools.command.build_ext
setup()
Distribution
因为不能保证您需要传递的其他值的集合将保持不变,否则下一个维护者将不会切换到另一个构建器1;该值仅在构建扩展时才需要,
build_ext
1好吧,我承认这一特殊的可能性很小