Conda-Build:无法满足平台 osx-64 的依赖项:{"torch[version='>=0.4']"}

Yin*_*g.L 5 python setuptools python-3.x anaconda conda

我是构建conda包的新手。我已将包上传到PyPI,因此我遵循了有关从 pip package 构建 conda 的文档。当我尝试pyinstrument从构建时它可以工作pip,但是当我尝试构建我的包时出现以下错误。

conda_build.exceptions.DependencyNeedsBuildingError: Unsatisfiable dependencies for platform osx-64: {"torch[version='>=0.4']"}
Run Code Online (Sandbox Code Playgroud)

我在这里发现了一个类似的问题,但是添加频道并没有解决我的问题,因为pytorch存在于默认频道中。

这是我的meta.yml文件:

{% set name = "scvi" %}
{% set version = "0.1.2" %}
{% set file_ext = "tar.gz" %}
{% set hash_type = "sha256" %}
{% set hash_value = "ca87155662d85605f86c5e86b7b9f64d881b882177b9642fff8f0ea215c6cb1a" %}

package:
  name: '{{ name|lower }}'
  version: '{{ version }}'

source:
  fn: '{{ name }}-{{ version }}.{{ file_ext }}'
  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.{{ file_ext }}
  '{{ hash_type }}': '{{ hash_value }}'

build:
  number: 0
  script: python setup.py install --single-version-externally-managed --record=record.txt

requirements:
  run:
    - python 3.6
    - setuptools
    - numpy>=1.0
    - torch>=0.4
    - matplotlib>=2.0
    - scikit-learn>=0.18
    - scipy>=1.0
    - h5py>=2.8
    - pandas>=0.2
    - loompy>=2.0

test:
  imports:
    - scvi
    - scvi.dataset
    - scvi.metrics
    - scvi.models
  requires:
    - pytest

about:
  home: https://github.com/YosefLab/scVI
  license: MIT
  license_family: MIT
  license_file: 'LICENSE'
  summary: Single-cell Variational Inference
  description: Single-cell Variational Inference
  doc_url: https://scvi.readthedocs.io
  dev_url: https://github.com/YosefLab/scVI
Run Code Online (Sandbox Code Playgroud)

关于我应该研究哪个方向的任何可能的解决方案或建议都会非常有帮助。谢谢!

Yin*_*g.L 5

事实证明,meta.yml通过运行自动生成的文件中存在错误conda skeleton pypi {package name}。在 中meta.yml,它应该pytorch代替torch

  • 嗯,这不是一个错误。问题是pytorch在`pypi`上作为`torch`分发,在`conda`上作为`pytorch`分发,并且它作为`torch`安装在文件系统上。所以“骨架”程序不可能知道它。我刚刚经历了同样的过程,无法弄清楚为什么 conda 没有找到 `torch`,直到我意识到两个发行版名称之间的不匹配。真是一团糟。但我很高兴你也想通了! (4认同)