Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 相对于我的项目,我应该把康达配方放在哪里?_Python_Anaconda_Conda - Fatal编程技术网

Python 相对于我的项目,我应该把康达配方放在哪里?

Python 相对于我的项目,我应该把康达配方放在哪里?,python,anaconda,conda,Python,Anaconda,Conda,我已经创建了一个python项目,我想用conda构建它,但是当我将cd刻录到conda recipe文件夹并运行conda build时,我遇到了一个错误。没有找到setup.py文件。我已经尝试将conda配方移动到与setup.py相同的级别,并将source部分添加到我的meta.yaml中,但仍然出现错误。相对于我的python包,康达配方的最佳放置位置是哪里 以下是我的项目结构: - MyProject/ |- conda-recipe/ |- bld.bat |

我已经创建了一个python项目,我想用conda构建它,但是当我将cd刻录到conda recipe文件夹并运行
conda build时,我遇到了一个错误。
没有找到setup.py文件。我已经尝试将conda配方移动到与setup.py相同的级别,并将source部分添加到我的meta.yaml中,但仍然出现错误。相对于我的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文件夹的位置并不重要,只要它知道源代码的确切位置

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

path: ../code 

更好的是,使用
$RECIPE\u DIR
将其设置为绝对值而不是相对值:


setup.py
似乎不在
code
文件夹内。@NehalJWani不,它在该文件夹外,与测试文件夹处于同一级别。如果项目的组织方式不同,我将脱离Python打包机构定义的项目结构?您是否尝试将
path:../code
替换为
path:../../..//code>,
source
部分下的
path
指令应该指向包含整个源代码的目录。@NehalJWani解决了这个问题!非常感谢。我是否将尾波配方放在了项目的正确位置,还是应该放在其他地方?是否有首选位置?不要使用
$RECIPE_DIR
;这条路已经走了。使用
$RECIPE\u DIR
将中断源代码构建。
path: ../../
path: $RECIPE_DIR/../..