构建与 "Icon" 文件相关的 conda 包时如何修复错误?

How to fix error when building conda package related to "Icon" file?

老实说,我不知道这个错误是怎么回事。我以为这是我的清单文件中的内容,但显然不是。

注意,这个目录在我的 Google 驱动器中。

这是我的 MANIFEST.in 文件:

graft soothsayer_utils
include setup.py
include LICENSE.txt
include README.md
global-exclude Icon*
global-exclude *.py[co]
global-exclude .DS_Store

我在 运行 conda build . 目录中得到以下错误:

Packaging soothsayer_utils
INFO:conda_build.build:Packaging soothsayer_utils
INFO conda_build.build:build(2214): Packaging soothsayer_utils
Packaging soothsayer_utils-2022.01.19-py_0
INFO:conda_build.build:Packaging soothsayer_utils-2022.01.19-py_0
INFO conda_build.build:bundle_conda(1454): Packaging soothsayer_utils-2022.01.19-py_0
number of files: 11
Fixing permissions
Packaged license file/s.
INFO :: Time taken to mark (prefix)
        0 replacements in 0 files was 0.11 seconds
'site-packages/soothsayer_utils-2022.1.19.dist-info/Icon' not in tarball
'site-packages/soothsayer_utils-2022.1.19.dist-info/Icon\r' not in info/files
Traceback (most recent call last):
  File "/Users/jespinoz/anaconda3/bin/conda-build", line 11, in <module>
    sys.exit(main())
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/cli/main_build.py", line 474, in main
    execute(sys.argv[1:])
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/cli/main_build.py", line 463, in execute
    outputs = api.build(args.recipe, post=args.post, test_run_post=args.test_run_post,
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/api.py", line 186, in build
    return build_tree(
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/build.py", line 3008, in build_tree
    packages_from_this = build(metadata, stats,
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/build.py", line 2291, in build
    newly_built_packages = bundlers[pkg_type](output_d, m, env, stats)
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/build.py", line 1619, in bundle_conda
    tarcheck.check_all(tmp_path, metadata.config)
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/tarcheck.py", line 89, in check_all
    x.info_files()
  File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/tarcheck.py", line 53, in info_files
    raise Exception('info/files')
Exception: info/files

这是complete log

我可以确认 Icon 文件不存在于我的 soothsayer_utils-2022.1.19.tar.gz 文件中:

(base) jespinoz@x86_64-apple-darwin13 Downloads % tree soothsayer_utils-2022.1.19
soothsayer_utils-2022.1.19
├── LICENSE.txt
├── MANIFEST.in
├── PKG-INFO
├── README.md
├── setup.cfg
├── setup.py
├── soothsayer_utils
│   ├── __init__.py
│   └── soothsayer_utils.py
└── soothsayer_utils.egg-info
    ├── PKG-INFO
    ├── SOURCES.txt
    ├── dependency_links.txt
    ├── requires.txt
    └── top_level.txt

2 directories, 13 files

有人可以帮我 conda build 为我的包裹工作吗?

有一些症状我想建议调查:

  1. 您的错误日志中有警告 SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools。您的 MANIFEST.insetup.pysetup.cfg 之间可能存在冲突。因为 setup.py 是 setuptools 的构建脚本。它告诉 setuptools 您的包(例如名称和版本)以及要包含的代码文件。此外,现有生成的 MANIFEST 将在没有 sdist 的情况下重新生成,将其修改时间与 MANIFEST.in 或 setup.py 中的一个进行比较,如 here.
  2. 所述

Please refer to Building and Distributing Packages with Setuptools, also Configuring setup() using setup.cfg files and Quickstart for more information

  1. 也许不那么重要,但另一件值得研究的事情是在不同阶段使用了 2 种不同的 python 分布,因为 Python 3.10 用于:Using pip 22.0.2 from $PREFIX/lib/python3.10/site-packages/pip (python 3.10) (它也在您的 conda 依赖项中)并且 Python 3.8 用于: File "/Users/jespinoz/anaconda3/lib/python3.8/site-packages/conda_build/tarcheck.py", line 53, in info_files raise Exception('info/files') 这是错误发生的地方。所以可能与此相关的另一个配置冲突。