由于 msgpack 依赖性,Conda 构建失败(旧名称问题 - msgpack-python)

Conda build fails due to msgpack dependency (issue with old name - msgpack-python)

我正在尝试构建一个 Python conda 包,它依赖于一个依赖于 msgpack 的 pip 库(分布式)。我不断收到在 setuptools 中下载被禁用的错误,但我的依赖项中列出了 msgpack(或 msgpack-python,我都试过了)。我相信这是由于 pip 上的名称更改所致。

旧名称为 msgpack-python,新名称为 msgpack

distributedmsgpack 列为依赖项,但看起来 condamsgpack-python 安装为 conda 包 (https://anaconda.org/anaconda/msgpack-python)。然后它抱怨 setuptools 需要 msgpack 并且无法下载。

难道是需要在Anaconda上把名字改成msgpack?

这是我遇到的错误:

Searching for msgpack
Traceback (most recent call last):
  File "setup.py", line 41, in <module>
    include_package_data=True
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/__init__.py", line 129, in setup
    return distutils.core.setup(**attrs)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/distutils/core.py", line 148, in setup
    dist.run_commands()
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/distutils/dist.py", line 955, in run_commands
    self.run_command(cmd)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/distutils/dist.py", line 974, in run_command
    cmd_obj.run()
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/install.py", line 67, in run
    self.do_egg_install()
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/install.py", line 117, in do_egg_install
    cmd.run()
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 412, in run
    self.easy_install(spec, not self.no_deps)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 654, in easy_install
    return self.install_item(None, spec, tmpdir, deps, True)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 701, in install_item
    self.process_distribution(spec, dist, deps)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 746, in process_distribution
    [requirement], self.local_index, self.easy_install
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/pkg_resources/__init__.py", line 770, in resolve
    replace_conflicting=replace_conflicting
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1053, in best_match
    return self.obtain(req, installer)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/pkg_resources/__init__.py", line 1065, in obtain
    return installer(requirement)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/command/easy_install.py", line 661, in easy_install
    not self.always_copy, self.local_index
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/package_index.py", line 656, in fetch_distribution
    self.find_packages(requirement)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/package_index.py", line 489, in find_packages
    self.scan_url(self.index_url + requirement.unsafe_name + '/')
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/package_index.py", line 829, in scan_url
    self.process_url(url, True)
  File "/Users/bschreck/miniconda3/envs/py3default/conda-bld/featuretools_1530818194289/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/python3.5/site-packages/setuptools/package_index.py", line 324, in process_url
    "Be sure to add all dependencies in the meta.yaml  url=%s" % url)
RuntimeError: Setuptools downloading is disabled in conda build. Be sure to add all dependencies in the meta.yaml  url=https://pypi.org/simple/msgpack/

我能够通过将构建命令中的 pip 参数更改为以下内容来使其工作:

python -m pip install --no-deps --ignore-installed .

关键标志是--no-deps。我明确告诉 conda 在 meta.yaml 文件中安装 msgpack-python (wa conda 包),然后后面的 pip 安装不会检查 msgpack 依赖项(我认为它失败了,因为它只看到 msgpack-python,而不是 msgpack)