我应该在哪里放置与我的项目相关的 conda-recipe?

Where do I put a conda-recipe relative to my project?

我创建了一个 python 项目,我想用 conda 构建它,但是当我 cd 到 conda-recipe 文件夹和 运行 conda build . 时出现错误 [= =28=] 找不到文件。我已经尝试将 conda-recipe 移动到与 setup.py 相同的级别并将源部分添加到我的 meta.yaml 但我仍然收到错误。 conda-recipe 相对于我的 python 包的最佳位置在哪里?

这是我的项目结构:

- MyProject/
  |- conda-recipe/
    |- bld.bat
    |- build.sh
    |- meta.yaml
  |- code/
    |- subpackage/
      |- __init__.py
      |- foo.py
  |- tests/
    |- test_foo.py
  |-setup.py

这是我的bld.bat的内容:

"%PYTHON%" setup.py sdist install
if errorlevel 1 exit 1

和 build.sh:

#!/bin/bash

$PYTHON setup.py sdist install     

和 meta.yaml:

package:
  name: myproject
  version: "1.0.0" 

source:
  path: ../code

requirements:
  build:
    - python
    - setuptools

  run:
    - python
    - argparse

为了完整起见,这里是错误:

(C:\Anaconda2\conda-bld\myproject_1492545717354\_b_env) 
  C:\Anaconda2\conda-bld\myproject_1492545717354\work>
  "C:\Anaconda2\conda-bld\myproject_1492545717354\_b_env\python.exe" setup.py 
  sdist install C:\Anaconda2\conda-bld\myproject_1492545717354\_b_env\python.exe: 
  can't open file 'setup.py': [Errno 2] No such file or directory

IIUC,只要知道源代码的确切位置,conda-recipe 文件夹的位置并不重要。

根据 documentationpath 的值应该指向源存储库的副本。在您的情况下,它是 'MyProject',因此您可以尝试替换...

path: ../code 

path: ../../

更好的是,使用 $RECIPE_DIR environment variable:

使其成为绝对的而不是相对的
path: $RECIPE_DIR/../..