我有一个主要用 C 编写的项目,但它也有一个 Python API,它使用用 C 编写的 Python 扩展模块。
为 Linux/UNIX 环境编写安装/部署脚本的最佳方法是什么?通常,我使用 make
实用程序来编译和安装用 C 编写的项目。大多数时候,我只是让 make 实用程序将所有源代码编译成可执行文件,然后将可执行文件复制到 /usr/local/bin
.
但是,我的 Python API 需要编译/安装共享库 (.so
) 文件才能与 Python 一起使用。这主要涉及编译必要的 C 文件,然后将共享库复制到属于 Python sys.path
的某个目录,例如 /usr/local/lib/pythonX.X/dist-packages/
.
但是 Make 实用程序如何检测到 Python 扩展模块的适当目录? Python 的 sys.path
中是否有环境变量或其他列出目录的东西?
最佳答案
如果由于某种原因你不能使用 python 的 distutils,你可以在 shell 中尝试一些启发式方法:
INSTALL_PATH=$(python -c 'import sys; print [ i for i in sys.path if i.endswith("-packages") ][0]')
测试于:
- RHEL5:/usr/lib64/python2.4/site-packages
- Debian:/usr/local/lib/python2.6/dist-packages
- Solaris:/usr/local/lib/python2.6/site-packages
关于python - 使用 Python API 为 C 项目安装脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5719506/