繁体   English   中英

conda 依赖项不会安装在本地包构建中

[英]conda dependencies do not install on local package build

我正在使用conda-build构建一个 Python 包。 现在我的结构是这样的:

- my_recipe/
    - meta.yaml
    - build.sh

我的meta.yaml是这样写的:

package:
  name: my_pkg
version: "0.2.0"

source:
  path: ../my_pkg

requirements:
  build:
    - python
    - setuptools
  run:
    - python
    - pandas
    - numpy
    - plotly
    - matplotlib
    - pyqtgraph
    - pyopengl
    - gdal
    - scipy
    - scikit-image

当我运行时,包本身构建正确

conda-build my_recipe/

当我运行时它安装成功

conda install -n my_env --use-local ~/miniconda3/envs/my_env/conda-bld/linux-64/my_pkg-0.2.0-py36_0.tar.bz2

但是, run下列出的所有依赖项似乎都没有随包一起安装(例如,当我在 Python 中导入包时,它说找不到pandas )。

我的依赖项是否列在正确的位置? 我还需要在setup.py列出依赖项吗? 文档对这些信息的位置不是很清楚。

我发现在安装本地包时使用--update-deps标志确实安装了包的依赖项,正如预期的那样。 像这样:

conda install --use-local --update-deps my-package-name

我很幸运地告诉conda将本地目录视为频道:

conda install my-package-name -c file:///FULL_PATH_TO_CONDA/envs/my_env/conda-bld/

我根据此处的说明解决了这个问题,但请注意,我不必先运行conda index因为conda build已经创建了repodata.json文件。

指定频道对我有用。

实际上,您甚至不需要指定完整路径。 例如,从配方所在的文件夹(meta.yaml 和 build.sh),我使用以下命令构建我的包:

conda-build . --output-folder ./build

然后,我使用以下命令安装软件包:

conda install my_package_name -c ./build

这也将安装在 meta.yaml 中指定的依赖项。 这是我的 meta.yaml 的样子。

package:
  name: my_package_name
  version: 0.0.1

source:
  path: .

requirements:
  build:
    - python
    - setuptools

  run:
    - python
    - numpy
    - holopy
    - scikit-image

正如@darthbith 所评论的,使用--use-local标志和包名,

conda install -n my_env --use-local my_pkg

按预期工作。 使用 tarball 的路径直接触发 Conda 安装而无需依赖项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM