conda-build 错误地抱怨依赖项未包含在 meta.yaml 中

kin*_*ity 6 python anaconda conda

我正在尝试将 Python 模块(wsamdata)构建为 conda 包。conda-build失败并显示错误消息(完整输出:https://pastebin.com/sKXNEcB6

RuntimeError: Setuptools downloading is disabled in conda build.
Be sure to add all dependencies in the meta.yaml  url=https://pypi.org/simple/click/
Run Code Online (Sandbox Code Playgroud)

click是一个依赖项,因此我将其包含在我的meta.yaml(见下文)中,所以看到这条消息我有点困惑。

package:
  name: wsamdata
  version: 0.6.0
source:
  git_rev: v0.6.0
  git_url: https://github.com/kinverarity1/wsamdata
requirements:
  build:
    - python
    - pip
    - setuptools
    - numpy
    - pandas
    - geopandas
    - sqlparse
    - click
    - cx_Oracle
    - pillow
    - sqlalchemy
    - python-sa-gwdata>=0.5.4
    - lasio
  run:
    - python
    - numpy
    - pandas
    - geopandas
    - sqlparse
    - click
    - cx_Oracle
    - pillow
    - sqlalchemy
    - python-sa-gwdata>=0.5.4
    - lasio
Run Code Online (Sandbox Code Playgroud)

显然click也包含install_requires=[...]wsamdata包的setup.py文件中:

RuntimeError: Setuptools downloading is disabled in conda build.
Be sure to add all dependencies in the meta.yaml  url=https://pypi.org/simple/click/
Run Code Online (Sandbox Code Playgroud)

我无法分享 的源代码wsamdata,所以我知道这不是一个可重现的示例,但我陷入困境,想知道我是否遗漏了一些明显的东西。我已经能够conda-build在这台机器上成功使用为python-sa-gwdata.

conda skeleton我发现了其他类似的问题,但它们与生成缺少需求的文件的设置有关meta.yaml。相反,我是meta.yaml从头开始写的。

我的.condarc文件:

channels:
  - kinverarity
  - conda-forge
  - defaults
ssl_verify: true
auto_update_conda: true
always_yes: true
show_channel_urls: true
create_default_packages:
  - pip
  - black
pip_interop_enabled: true
anaconda_upload: false
Run Code Online (Sandbox Code Playgroud)

Tha*_*tas 4

如果有人偶然发现这一点,我遇到了同样的问题并使用解决了它

--single-version-externally-managed --record=record.txt

pip install 命令中的选项,如anaconda 云文档中建议的那样

如果您使用build.shbld.bat,请尝试:

$PYTHON setup.py install --single-version-externally-managed --record=record.txt
Run Code Online (Sandbox Code Playgroud)

或者

"%PYTHON%" setup.py install --single-version-externally-managed --record=record.txt
Run Code Online (Sandbox Code Playgroud)

, 分别。

或者,您可以将其添加到您的 meta.yaml 中:

"%PYTHON%" setup.py install --single-version-externally-managed --record=record.txt
Run Code Online (Sandbox Code Playgroud)

或者,如果您使用conda sculpture,则 pypi.org 中已存在包:

build:
  script: {{ PYTHON }} setup.py install --single-version-externally-managed --record=record.txt
Run Code Online (Sandbox Code Playgroud)