依赖于apt库构建一个conda包

5
我正在构建一个科学 Python 项目,它依赖于一个 Python 包(scikits.sparse),该包提供了与 C/Fortran 库(libsuitesparse-dev)的绑定,可以通过 apt-getyum 安装,但几乎不可能手动安装。
我想让我的软件包在所有平台上都能为用户使用,我认为最好的方法是使用 conda skeleton 构建 conda 软件包,然后将其翻译到其他平台。但是我不确定 conda 在管理来自 apt-get 的外部库依赖方面是否良好,并且想知道除了官方说明之外,是否需要做其他事情来使它正常工作。
1个回答

2
我不确定conda能否很好地管理来自apt-get的外部库依赖关系。但是,conda将不通过apt-get管理外部库,而是通过其自己的软件包管理系统进行管理。 aptconda是两个不同且独立的软件包管理系统。一个是官方的debian/ubuntu软件包管理器,另一个是像pipnpm这样的附加软件包管理器。它们各自都有其自己的安装软件包和数据库。
您可以通过aptconda甚至两者都分发您的项目,但是您的用户必须选择一个分发渠道。
已经有一个scikits.sparse库的conda配方,您可以通过以下方式安装它。
conda install -c https://conda.anaconda.org/menpo scikits.sparse

如果您想在其中一个配方中包含它,您需要在您的.condarc文件中添加menpo频道:

channels:
  - defaults
  - menpo 

然后在您的代码中,可以使用以下方式引入scikits.sparse模块:

requirements:
  build:
    - python
    - setuptools

  run:
    - python
    - scikits.sparse

3
问题更多是如何将通过apt分发的第三方二进制文件重新打包到conda中。 - chiffa
1
@chiffa 看看我的修改,我认为它解决了你的问题。 - Ortomala Lokni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接