Python pip如何处理第三方依赖

标签 python pip

我正在开发一个安装在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/

相关文章:

python - LSTM 上的 Keras 注意力层

Python:我可以将日期时间转换为粒度小于一整天的 float 吗?

python - 如何安装我的自定义 Python 包及其自定义依赖项?

python - PyInstaller 使用 pip 安装了 'successfully' 但找不到 pyinstaller.py

python - pip 可以将依赖项源复制到我的 virtualenv 中吗?

python - 画中画 (Python) : ImportError: cannot import name _remove_dead_weakref

python - 查找值的位置,在数据框中只出现一次

python - 如何使用QtWebKit设置浏览器的大小

python - 反向传播的扩展

python - 每次我运行 `pip` 来安装任何软件包时,它都会向我显示警告