从 Qiskit 安装 requirements-dev.txt 会引发 SQNomad 错误

问题描述

我正在尝试使用 pip 安装以下要求:

coverage>=4.4.0
hypothesis>=4.24.3
ipywidgets>=7.3.0
jupyter
matplotlib>=2.1
pillow>=4.2.1
pycodestyle
pydot
astroid==2.5
pylint==2.7.1
stestr>=2.0.0
PyGithub
wheel
cython>=0.27.1
pylatexenc>=1.4
ddt>=1.2.0,!=1.4.0
seaborn>=0.9.0
reno>=3.2.0
Sphinx>=1.8.3,<3.1.0
qiskit-sphinx-theme>=1.6
sphinx-autodoc-typehints
jupyter-sphinx
sphinx-panels
pygments>=2.4
tweedledum==0.1b0
networkx>=2.2
scikit-learn>=0.20.0
scikit-quant;platform_system != 'Windows'
jax;platform_system != 'Windows'
jaxlib;platform_system != 'Windows'

在 SQNomad 我收到以下错误

Downloading SQNomad-0.1.0.tar.gz (385 kB)
     |████████████████████████████████| 385 kB 5.6 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel Metadata ... error
    ERROR: Command errored out with exit status 1:
     command: /Users/jim-Felixlobsien/opt/anaconda3/bin/python /Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py prepare_Metadata_for_build_wheel /var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/tmpta1cj_q6
         cwd: /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-install-pw0tuweh/SQNomad
    Complete output (55 lines):
    running dist_info
    creating /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info
    writing /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info/PKG-INFO
    writing dependency_links to /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info/dependency_links.txt
    writing requirements to /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info/requires.txt
    writing top-level names to /private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info/top_level.txt
    writing manifest file '/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-modern-Metadata-j_5tehl8/SQNomad.egg-info/SOURCES.txt'
    Traceback (most recent call last):
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py",line 280,in <module>
        main()
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py",line 263,in main
        json_out['return_val'] = hook(**hook_input['kwargs'])
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py",line 133,in prepare_Metadata_for_build_wheel
        return hook(Metadata_directory,config_settings)
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/build_Meta.py",line 161,in prepare_Metadata_for_build_wheel
        self.run_setup()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/build_Meta.py",line 253,in run_setup
        super(_BuildMetaLegacyBackend,File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/build_Meta.py",line 145,in run_setup
        exec(compile(code,__file__,'exec'),locals())
      File "setup.py",line 77,in <module>
        setup(
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/__init__.py",line 153,in setup
        return distutils.core.setup(**attrs)
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/core.py",line 148,in setup
        dist.run_commands()
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/dist.py",line 966,in run_commands
        self.run_command(cmd)
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/dist.py",line 985,in run_command
        cmd_obj.run()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/command/dist_info.py",line 31,in run
        egg_info.run()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/command/egg_info.py",line 299,in run
        self.find_sources()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/command/egg_info.py",line 306,in find_sources
        mm.run()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/command/egg_info.py",line 541,in run
        self.add_defaults()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/setuptools/command/egg_info.py",line 577,in add_defaults
        sdist.add_defaults(self)
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/command/sdist.py",line 228,in add_defaults
        self._add_defaults_ext()
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/command/sdist.py",line 311,in _add_defaults_ext
        build_ext = self.get_finalized_command('build_ext')
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/cmd.py",in get_finalized_command
        cmd_obj.ensure_finalized()
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/cmd.py",line 107,in ensure_finalized
        self.finalize_options()
      File "/private/var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/pip-build-env-8qqwe_v9/overlay/lib/python3.8/site-packages/numpy/distutils/command/build_ext.py",line 86,in finalize_options
        self.set_undefined_options('build',File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/cmd.py",line 290,in set_undefined_options
        setattr(self,dst_option,getattr(src_cmd_obj,src_option))
      File "/Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/distutils/cmd.py",line 103,in __getattr__
        raise AttributeError(attr)
    AttributeError: cpu_baseline
    ----------------------------------------
ERROR: Command errored out with exit status 1: /Users/jim-Felixlobsien/opt/anaconda3/bin/python /Users/jim-Felixlobsien/opt/anaconda3/lib/python3.8/site-packages/pip/_vendor/pep517/_in_process.py prepare_Metadata_for_build_wheel /var/folders/h4/1z5lkc1x4nb2s31y0f6y9r200000gn/T/tmpta1cj_q6 Check the logs for full command output.

有人知道发生了什么吗?我正在尝试遵循以下视频中的结构: https://www.youtube.com/watch?v=QjZdvNgYl3s&t=731s

任务是为qiskit做贡献!

非常感谢您提前

解决方法

问题来自 scikit-quant 中的依赖项。解决此问题的最直接方法是安装先前 (0.7) 版本的 scikit-quant 而不是当前的 0.8,因为 Qiskit 似乎与之兼容:

pip install 'scikit-quant==0.7'

,

SQNomad 0.2.1 修正;感谢 luciano 的报告。

但它现在也成为 scikit-quant 的可选组件,如果需要,可以与 scikit-quant[NOMAD] 一起安装。它是一个相当大的C++库,需要在其依赖Python和独立于Python的部分之间进行拆分,以防止产生巨大的轮子,然后安装会更容易,并且可以恢复它的可选状态。

在任何情况下,所有优化器都可以独立安装和使用(例如,对于 NOMAD,使用 python -m pip install SQNomad)。