我正在开发一个安装在virtual-env
内的Python模块。该模块依赖于第三方 python 模块,例如 pandas、matplotlib 等,它们自身依赖于非 python 包进行编译。
我的 setup.py 看起来像这样
config = {
'packages': ['name'],
'install_requires': ['numpy',
'pandas',
'cython',
'matplotlib',
],
'name': 'name',
}
setup(**config)
我当前的工作流程是pip install
包并等待编译错误并手动安装缺少的依赖项。但是,如果我将该模块提供给我的同事,这可能会变得很麻烦。
有没有办法告诉 pip 安装非 python 依赖项,例如
'external_requires': ['gcc',
],
'external_install': ['apt-get install']
或者调用安装脚本?最佳实践是什么?
最佳答案
最佳实践取决于目标受众,但因为
apt-get
特定于 Debian/Ubuntu 及其衍生版本- 需要 super 用户权限
- 软件包名称在不同版本之间往往会发生变化
和 终于
- 软件包可能会发生冲突,我倾向于将这些内容放在自述文件中而不是脚本中。
关于Python pip如何处理第三方依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21134149/