我在哪里放一个conda-recipe相对于我的项目?

时间:2017-04-18 20:30:34

标签: python anaconda conda

我创建了一个我想用conda构建的python项目,但是当我cd到conda-recipe文件夹并运行conda build .找不到setup.py文件时,我收到错误。我已经尝试将conda-recipe移动到与setup.py相同的级别,并将source部分添加到我的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

1 个答案:

答案 0 :(得分:5)

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

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

path: ../code 

path: ../../

更好的是,使用$RECIPE_DIR environment variable使其成为绝对而非亲戚:

path: $RECIPE_DIR/../..