项目场景:
在Linux和MacOS系统下可以安装argoverse-api,win系统下安装会报错
使用以下命令克隆仓库到本地:
git clone https://github.com/argoai/argoverse-api.git
进入argoverse-api目录,使用:
pip install -e /path_to_root_directory_of_the_repo/
将argoverse-api安装到python环境中
问题描述
安装时遇到以下问题:
~/track_predict/argoverse-api$ pip install -e .
Obtaining file:///home/leizhenyu/track_predict/argoverse-api
Installing build dependencies ... done
Checking if build backend supports build_editable ... done
Getting requirements to build editable ... done
Preparing editable metadata (pyproject.toml) ... done
Collecting colour (from argoverse==1.1.0)
Using cached colour-0.1.5-py2.py3-none-any.whl (23 kB)
Collecting descartes (from argoverse==1.1.0)
Using cached descartes-1.1.0-py3-none-any.whl (5.8 kB)
Collecting h5py (from argoverse==1.1.0)
Downloading h5py-3.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.5 kB)
Collecting hydra-core==1.1.0 (from argoverse==1.1.0)
Using cached hydra_core-1.1.0-py3-none-any.whl (144 kB)
Collecting imageio (from argoverse==1.1.0)
Using cached imageio-2.33.1-py3-none-any.whl.metadata (4.9 kB)
Collecting lapsolver (from argoverse==1.1.0)
Using cached lapsolver-1.1.0.tar.gz (261 kB)
Preparing metadata (setup.py) ... done
Collecting matplotlib (from argoverse==1.1.0)
Downloading matplotlib-3.8.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (5.8 kB)
Collecting motmetrics==1.1.3 (from argoverse==1.1.0)
Using cached motmetrics-1.1.3-py3-none-any.whl (133 kB)
Collecting numba (from argoverse==1.1.0)
Downloading numba-0.58.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.7 kB)
Collecting numpy==1.19 (from argoverse==1.1.0)
Downloading numpy-1.19.0.zip (7.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.3/7.3 MB 13.6 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... error
error: subprocess-exited-with-error
× Preparing metadata (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [54 lines of output]
Running from numpy source directory.
<string>:460: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py:73: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
required_version = LooseVersion('0.29.14')
/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py:75: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
if LooseVersion(cython_version) < required_version:
Error compiling Cython file:
------------------------------------------------------------
...
self.rng_state.ctr.v[i] = counter[i]
self._reset_state_variables()
self._bitgen.state = <void *>&self.rng_state
self._bitgen.next_uint64 = &philox_uint64
^
------------------------------------------------------------
_philox.pyx:195:35: Cannot assign type 'uint64_t (*)(void *) except? -1 nogil' to 'uint64_t (*)(void *) noexcept nogil'. Exception values are incompatible. Suggest adding 'noexcept' to type 'uint64_t (void *) except? -1 nogil'.
Processing numpy/random/_bounded_integers.pxd.in
Processing numpy/random/_philox.pyx
Traceback (most recent call last):
File "/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py", line 235, in <module>
main()
File "/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py", line 231, in main
find_process_files(root_dir)
File "/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py", line 222, in find_process_files
process(root_dir, fromfile, tofile, function, hash_db)
File "/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py", line 188, in process
processor_function(fromfile, tofile)
File "/tmp/pip-install-ssw99ypj/numpy_2132e1bb855847e18d28a3594d69cf5a/tools/cythonize.py", line 77, in process_pyx
subprocess.check_call(
File "/home/leizhenyu/anaconda3/envs/HiVT/lib/python3.10/subprocess.py", line 369, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/home/leizhenyu/anaconda3/envs/HiVT/bin/python', '-m', 'cython', '-3', '--fast-fail', '-o', '_philox.c', '_philox.pyx']' returned non-zero exit status 1.
Cythonizing sources
Traceback (most recent call last):
File "/home/leizhenyu/anaconda3/envs/HiVT/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "/home/leizhenyu/anaconda3/envs/HiVT/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/home/leizhenyu/anaconda3/envs/HiVT/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
File "/tmp/pip-build-env-zuf_l460/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 366, in prepare_metadata_for_build_wheel
self.run_setup()
File "/tmp/pip-build-env-zuf_l460/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 480, in run_setup
super(_BuildMetaLegacyBackend, self).run_setup(setup_script=setup_script)
File "/tmp/pip-build-env-zuf_l460/overlay/lib/python3.10/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 489, in <module>
File "<string>", line 469, in setup_package
File "<string>", line 274, in generate_cython
RuntimeError: Running cythonize failed!
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
原因分析:
在github 仓库的issue下找到这个问题,发现是numpy版本不匹配造成的
解决方案:
在setup.py中将numpy==1.19.0修改为numpy==1.21.0