从Python中返回包含和运行时lib目录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从Python中返回包含和运行时lib目录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1358字,纯文字阅读大概需要2分钟。
内容图文
![从Python中返回包含和运行时lib目录](/upload/InfoBanner/zyjiaocheng/827/aa02e35491494e8a82af8b4d413fcf9e.jpg)
让我们说我想从命令行使用gcc来编译Python的C扩展.我将这样的调用结构如下:
gcc -o applesauce.pyd -I C:/Python35/include -L C:/Python35/libs -l python35 applesauce.c
我注意到-I,-L和-l选项是绝对必要的,否则你会得到一个看起来像this的错误.这些命令告诉gcc在哪里寻找标题(-I),在哪里寻找静态库(-L),以及实际使用的静态库(python35,实际上转换为libpython35.a).
现在,显然很容易获得lib并包含目录,如果它是你的机器,因为它们永远不会改变,如果你不想要它们.但是,我正在编写一个程序,从命令行调用gcc,其他人将使用.发生此调用的行看起来像这样:
from subprocess import call
import sys
filename = applesauce.c
include_directory = os.path.join(sys.exec_prefix, 'include')
libs_directory = os.path.join(sys.exec_prefix, 'libs')
call(['gcc', ..., '-I', include_direcory, '-L', libs_directory, ...])
但是,其他人将拥有不同的平台和不同的Python安装结构,因此只是加入路径并不总是有效.
相反,我需要Python中的一个解决方案,它将可靠地返回include和libs目录.
编辑:
我查看了distutils.ccompiler模块,发现了许多有用的函数,这些函数部分使用了distutils,但是让我可以自定义我的编译器完全跨平台.唯一的问题是,我需要传递包含和运行时库…
编辑2:
我查看了distutils.sysconfig,我能够可靠地返回包含所有头文件的’include’目录.我仍然不知道如何获取运行时库.
distutils.ccompiler文档是here
需要此功能的程序名为Cyther
最佳答案:
如果你在方法finalize_options中查看来自distutils的build_ext.py的源代码,你会发现用于定位libs的不同平台的代码.
内容总结
以上是互联网集市为您收集整理的从Python中返回包含和运行时lib目录全部内容,希望文章能够帮你解决从Python中返回包含和运行时lib目录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。