tl;博士:
如何排除文件夹被 conda build
打包?
上下文
我正在使用 conda build
构建我的第一个包。
我的 meta.yaml 文件如下所示:
package:
name: 'some_name'
version: {{ load_setup_py_data().get('version') }}
source:
path: ./
build:
script: python setup.py install --single-version-externally-managed --record=record.txt
requirements:
run:
- python >=3.6
- pandas >=0.2
- numpy >=1.12
# Packages that must be installed
# in the user's conda environment
# to run this package.
build:
# Packages used by setup.py
# to install this package.
# May also install compilers
# for non-python code.
- python
- setuptools
我的根目录(setup.py 和 meta.yaml 文件所在的位置)如下所示:
$ ls
README.md __pycache__ input isi_classif meta.yaml
notebooks output scripts setup.py version.py
有些文件夹之所以存在,是因为它们在原型(prototype)制作过程中很有用,但我不想从存储库中删除它们。
如何从 conda 构建的包中排除文件夹(如 input
或 notebooks
)及其内容?
有关信息,我使用以下命令构建:
$ conda build some_folder_name
最佳答案
我认为最好的方法是创建一个目录 recipe/
并将与食谱相关的文件移到那里。
然后将 meta.yaml 更改为
source:
path: ./..
因此只有 recipe 目录的内容会被 conda 复制到包中。
其次,文件夹 notebooks
和 input
只有在要包含的 setup.py 中指定时才会被包含。否则它们将被忽略。因此它们不会作为 setup.py install
的一部分安装,也不会包含在包中。
所以你的源目录结构看起来像:
some_folder_name
|--README.md
|--__pycache__
|--input
|--isi_classif
|--recipe
|--meta.yaml
|--notebooks
|--output
|--scripts
|--setup.py
|--version.py
那么你仍然可以使用
conda 构建 some_folder_name
关于python - 配置 conda 构建以从 conda 包输出中排除一些文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55055035/