【问题标题】:Where do I put a conda-recipe relative to my project?我在哪里放置与我的项目相关的 conda-recipe?
【发布时间】:2017-04-18 20:30:33
【问题描述】:

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

【问题讨论】:

  • setup.py 似乎不在code 文件夹中。
  • @NehalJWani 不,它在它之外,与测试文件夹处于同一级别。我正在脱离 Python 打包机构 github.com/pypa/sampleproject 定义的项目结构,项目应该以不同的方式组织吗?
  • 您尝试将path: ../code 替换为path: ../../ 吗?
  • 根据conda.io/docs/building/meta-yaml.html#source-sectionsource 部分下的path 指令应该指向包含整个源代码的目录。
  • @NehalJWani 这解决了问题!谢谢!我是否将 coda-recipe 放在项目中的正确位置,还是应该放在其他地方?有首选位置吗?

标签: python anaconda conda


【解决方案1】:

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

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

path: ../code 

path: ../../

更好的是,使用 $RECIPE_DIR environment variable 使其绝对而不是相对:

path: $RECIPE_DIR/../..

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2019-03-27
  • 1970-01-01
相关资源
最近更新 更多