服务器内安装opencv-python,压缩包解压,python setup.py install,出现报错。
Traceback (most recent call last):
File "setup.py", line 462, in
main()
File "setup.py", line 222, in main
skbuild.setup(
File "/home/llm/anaconda3/envs/pytorch_38/lib/python3.8/site-packages/scikit_build-0.15.0-py3.8.egg/skbuild/setuptools_wrap.py", line 676, in setup
_classify_installed_files(
File "setup.py", line 402, in _classify_installed_files_override
return (cls.wraps._classify_installed_files)(
TypeError: _classify_installed_files() got an unexpected keyword argument 'cmake_install_dir'
查看报错文件对应line
_classify_installed_files(
cmake_manifest,
package_data,
package_prefixes,
py_modules,
new_py_modules,
scripts,
new_scripts,
data_files,
cmake_source_dir,
skbuild_kw["cmake_install_dir"],
)
去github找对应项目源码
_classify_installed_files(
cmake_manifest,
package_data,
package_prefixes,
py_modules,
new_py_modules,
scripts,
new_scripts,
data_files,
cmake_source_dir,
cmake_install_dir,
)
可以看到最后一行“cmake_install_dir”表示不同,用后者替换前者,结果报错。
直接替换整个文件,继续报错。
决定卸载scikit-build,换个版本试试,在github上下载后安装
继续报错 ......
尝试安装原来的scikit-build-0.15.0版本,顺利。
安装opencv-python-4.5.3.56,scikit_build-0.15.0报错,问题回到最开始。
直接修改setuptools_wrap.py文件,去掉cmake_install_dir
报错为
修改为
报错
回到原点。
报错的意思是cmake_install_dir参数未知,在认真的看了这个文件的1000多行代码后,查找同时出现的cmake_install_dir和cmake_source_dir之间的区别,尝试改动其中两行。
结果还是一样的报错,再次回到原点。
替换整个def setup部分,报错
加入import,报错
继续完全替换_check_skbuild_parameters()模块。并添加import shutil后
报错,再次回到原点
A few hours later, 服务器联网,pip可以用后,直接用轮子安装,顺利
pip install opencv-contrib-python==4.5.3.56 顺利
最终问题在于服务器网络问题。