相对于我的项目,我应该把Conda食谱放在哪里?

2022-03-13 00:00:00 python conda anaconda

问题描述

我已经创建了一个python项目,我希望使用conda构建该项目,但是当我cd到conda-Recipe文件夹并运行conda build .时,我收到一个错误,即找不到setup.py文件。我已经尝试将conda-reecipe移到与setup.py相同的级别,并将source部分添加到我的meta.yaml中,但仍然收到错误。相对于我的python包,放置Conda-Recipe的最佳位置是哪里?

以下是我的项目结构:

- 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:Anaconda2conda-bldmyproject_1492545717354\_b_env) 
  C:Anaconda2conda-bldmyproject_1492545717354work>
  "C:Anaconda2conda-bldmyproject_1492545717354\_b_envpython.exe" setup.py 
  sdist install C:Anaconda2conda-bldmyproject_1492545717354\_b_envpython.exe: 
  can't open file 'setup.py': [Errno 2] No such file or directory

解决方案

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

根据documentation,path的值应该指向源库的副本。在您的情况下,它是‘MyProject’,因此您可以尝试替换.

path: ../code 

path: ../../

更好的是,使用$RECIPE_DIRenvironment variable:

将其设置为绝对而不是相对
path: $RECIPE_DIR/../..

相关文章