跨境派

跨境派

跨境派,专注跨境行业新闻资讯、跨境电商知识分享!

当前位置:首页 > 工具系统 > 数据分析 > Error checking compiler version for cl: [WinError 2] 系统找 不到指定的文件[已解决]

Error checking compiler version for cl: [WinError 2] 系统找 不到指定的文件[已解决]

时间:2024-04-12 13:20:29 来源:网络cs 作者:焦糖 栏目:数据分析 阅读:

标签: 指定  文件  解决  系统 

pytorch c++混编报错 Error checking compiler version for cl: [WinError 2] 系统找 不到指定的文件。

win11 pytorch 进行C++编译时出现错误

(python37) H:\emd>python setup.py installrunning installrunning bdist_eggrunning egg_infocreating emd.egg-infowriting emd.egg-info\PKG-INFOwriting dependency_links to emd.egg-info\dependency_links.txtwriting top-level names to emd.egg-info\top_level.txtwriting manifest file 'emd.egg-info\SOURCES.txt' D:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:370: UserWarning: Attempted to use ninja as the BuildExtension backend but wecould not find ninja.. Falling back to using the slow distutils backend.   warnings.warn(msg.format('we could not find ninja.'))reading manifest file 'emd.egg-info\SOURCES.txt'writing manifest file 'emd.egg-info\SOURCES.txt'installing library code to build\bdist.win-amd64\eggrunning install_librunning build_extD:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:305: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。  warnings.warn(f'Error checking compiler version for {compiler}: {error}')building 'emd' extensioncreating buildcreating build\temp.win-amd64-3.7……D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(427): note: 参见对正在编译的类 模板 实例化“OptionalBase<at::Tensor>”的引用D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\ATen/core/TensorBody.h(734): note: 参见对正在编译的类 模板 实例化“c10::optional<at::Tensor>”的引用D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(395): warning C4624: “c10::trivially_copyable_optimization_optional_base<T>”: 已将析构函数隐式定义为“已删除”        with        [            T=at::Tensor        ]D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(476): warning C4814: “c10::optional<at::Tensor>::contained_val”: 在 C++14 中,"constexpr" 将不表示“常量”;请考虑显式指定“常量”D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(477): error C2556: “at::Tensor &c10::optional<at::Tensor>::contained_val(void) const &”: 重载函数与“const at::Tensor &c10::optional<at::Tensor>::contained_val(void) const &”只是在返回类型上不同D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(471): note: 参见“c10::optional<at::Tensor>::contained_val”的声明D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(477): error C2373: “c10::optional<at::Tensor>::contained_val”: 重定义;不同的类型修饰符D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(471): note: 参见“c10::optional<at::Tensor>::contained_val”的声明D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(476): warning C4814: “c10::optional<int64_t>::contained_val”: 在 C++14中,"constexpr" 将不表示“常量”;请考虑显式指定“常量”D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\ATen/core/TensorBody.h(774): note: 参见对正在编译的类 模板 实例化“c10::optional<int64_t>”的引用D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(477): error C2556: “int64_t &c10::optional<int64_t>::contained_val(void) const &”: 重载函数与“const int64_t &c10::optional<int64_t>::contained_val(void) const &”只是在返回类型上不同D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(471): note: 参见“c10::optional<int64_t>::contained_val”的声明D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(477): error C2373: “c10::optional<int64_t>::contained_val”: 重定义;不同的类型修饰符D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(471): note: 参见“c10::optional<int64_t>::contained_val”的声明D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(477): fatal error C1003: 错误计数超过 100;正在停止编译error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2

关键错误 1.:UserWarning: Error checking compiler version for cl: [WinError 2] 系统找
不到指定的文件。

定位位置:D:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:305行

看看这个地方怎么有错误:

    try:        if sys.platform.startswith('linux'):            minimum_required_version = MINIMUM_GCC_VERSION            versionstr = subprocess.check_output([compiler, '-dumpfullversion', '-dumpversion'])            version = versionstr.decode().strip().split('.')        else:            minimum_required_version = MINIMUM_MSVC_VERSION            compiler_info = subprocess.check_output(compiler, stderr=subprocess.STDOUT)            match = re.search(r'(\d+)\.(\d+)\.(\d+)', compiler_info.decode().strip())            version = (0, 0, 0) if match is None else match.groups()    except Exception:        _, error, _ = sys.exc_info()        warnings.warn(f'Error checking compiler version for {compiler}: {error}')        return False

不是在linux平台,而是win平台,于是找到cl.exe的版本要求:

MINIMUM_MSVC_VERSION = (19, 0, 24215)# 这个在程序里面,txt文件打开,选定它,通过查找可以找到这个地方。

MSVC是一个编译器,其编译器名字叫"cl.exe",它是微软专为VS开发的一款编译器。

上面语句写了 MSVC 最低的版本要求MSVC 19.0.24215.
 

MSC_VER的意思就是:Microsoft 的 C 编译器的版本

MSC    1.0   _MSC_VER == 100MSC    2.0   _MSC_VER == 200MSC    3.0   _MSC_VER == 300MSC    4.0   _MSC_VER == 400MSC    5.0   _MSC_VER == 500MSC    6.0   _MSC_VER == 600MSC    7.0   _MSC_VER == 700MSVC++ 1.0   _MSC_VER == 800MSVC++ 2.0   _MSC_VER == 900MSVC++ 4.0   _MSC_VER == 1000 (Developer Studio 4.0)MSVC++ 4.2   _MSC_VER == 1020 (Developer Studio 4.2)MSVC++ 5.0   _MSC_VER == 1100 (Visual Studio 97 version 5.0)MSVC++ 6.0   _MSC_VER == 1200 (Visual Studio 6.0 version 6.0)MSVC++ 7.0   _MSC_VER == 1300 (Visual Studio .NET 2002 version 7.0)MSVC++ 7.1   _MSC_VER == 1310 (Visual Studio .NET 2003 version 7.1)MSVC++ 8.0   _MSC_VER == 1400 (Visual Studio 2005 version 8.0)MSVC++ 9.0   _MSC_VER == 1500 (Visual Studio 2008 version 9.0)MSVC++ 10.0  _MSC_VER == 1600 (Visual Studio 2010 version 10.0)MSVC++ 11.0  _MSC_VER == 1700 (Visual Studio 2012 version 11.0)MSVC++ 12.0  _MSC_VER == 1800 (Visual Studio 2013 version 12.0)MSVC++ 14.0  _MSC_VER == 1900 (Visual Studio 2015 version 14.0)MSVC++ 14.1  _MSC_VER == 1910 (Visual Studio 2017 version 15.0)MSVC++ 14.11 _MSC_VER == 1911 (Visual Studio 2017 version 15.3)MSVC++ 14.12 _MSC_VER == 1912 (Visual Studio 2017 version 15.5)MSVC++ 14.13 _MSC_VER == 1913 (Visual Studio 2017 version 15.6)MSVC++ 14.14 _MSC_VER == 1914 (Visual Studio 2017 version 15.7)MSVC++ 14.15 _MSC_VER == 1915 (Visual Studio 2017 version 15.8)MSVC++ 14.16 _MSC_VER == 1916 (Visual Studio 2017 version 15.9)MSVC++ 14.2  _MSC_VER == 1920 (Visual Studio 2019 Version 16.0)MSVC++ 14.21 _MSC_VER == 1921 (Visual Studio 2019 Version 16.1)MSVC++ 14.22 _MSC_VER == 1922 (Visual Studio 2019 Version 16.2)

注意这是它要求的最低版本,如果你安装vs2019,2022,在安装的地方有cl.exe。需要搜索一下,然后把cl.exe所在的路径添加到系统环境变量中,也就是path中,别忘了重启电脑。问题解决

第一步解决。

错误 2.D:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:370: UserWarning: Attempted to use ninja as the BuildExtension backend but we could not find ninja… Falling back to using the slow distutils backend.
 

没有安装 ninja...。这个ninja是什么东东,这里不管一会安装上就行

如何安装ninja

pip install ninja

运行结果

Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.comCollecting ninja  Downloading ninja-1.11.1-py2.py3-none-win_amd64.whl (313 kB)     |████████████████████████████████| 313 kB 939 kB/sInstalling collected packages: ninjaSuccessfully installed ninja-1.11.1

本文链接:https://www.kjpai.cn/news/2024-04-12/157567.html,文章来源:网络cs,作者:焦糖,版权归作者所有,如需转载请注明来源和作者,否则将追究法律责任!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

文章评论