我在哪里放置与我的项目相关的 conda-recipe?
Posted
技术标签:
【中文标题】我在哪里放置与我的项目相关的 conda-recipe?【英文标题】:Where do I put a conda-recipe relative to my project? 【发布时间】: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-section ,source
部分下的path
指令应该指向包含整个源代码的目录。
@NehalJWani 这解决了问题!谢谢!我是否将 coda-recipe 放在项目中的正确位置,还是应该放在其他地方?有首选位置吗?
【参考方案1】:
IIUC,conda-recipe 文件夹的位置并不重要,只要它知道源代码的确切位置即可。
根据documentation,path
的值应该指向源存储库的副本。在您的情况下,它是“MyProject”,因此您可以尝试替换...
path: ../code
到
path: ../../
更好的是,使用 $RECIPE_DIR
environment variable 使其绝对而不是相对:
path: $RECIPE_DIR/../..
【讨论】:
不要使用$RECIPE_DIR
;路径已经是relative to the recipe directory。使用 $RECIPE_DIR
将中断源外构建。以上是关于我在哪里放置与我的项目相关的 conda-recipe?的主要内容,如果未能解决你的问题,请参考以下文章
确保 Eclipse LogCat 显示与我的应用程序相关的项目
android.content.res.Resources $ NotFoundException - 但不是来自与我的应用程序相关的代码