pytorch c++混編報(bào)錯(cuò) Error checking compiler version for cl: [WinError 2] 系統(tǒng)找 不到指定的文件。
win11 pytorch 進(jìn)行C++編譯時(shí)出現(xiàn)錯(cuò)誤
(python37) H:\emd>python setup.py install
running install
running bdist_egg
running egg_info
creating emd.egg-info
writing emd.egg-info\PKG-INFO
writing dependency_links to emd.egg-info\dependency_links.txt
writing top-level names to emd.egg-info\top_level.txt
writing 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 we
could 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\egg
running install_lib
running build_ext
D:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:305: UserWarning: Error checking compiler version for cl: [WinError 2] 系統(tǒng)找
不到指定的文件。
warnings.warn(f'Error checking compiler version for {compiler}: {error}')
building 'emd' extension
creating build
creating build\temp.win-amd64-3.7
……
D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\c10/util/Optional.h(427): note: 參見對(duì)正在編譯的類 模板 實(shí)例化“OptionalBase<at::Tensor>”的
引用
D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\ATen/core/TensorBody.h(734): note: 參見對(duì)正在編譯的類 模板 實(shí)例化“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>”: 已將析構(gòu)函數(shù)隱式定義為“已刪除”
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" 將不表示“常量”;請(qǐng)考慮顯式指定“常量”
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 &”: 重載函數(shù)與“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" 將不表示“常量”;請(qǐng)考慮顯式指定“常量”
D:\Anaconda_app\envs\python37\lib\site-packages\torch\include\ATen/core/TensorBody.h(774): note: 參見對(duì)正在編譯的類 模板 實(shí)例化“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 &”: 重載函數(shù)與“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: 錯(cuò)誤計(jì)數(shù)超過 100;正在停止編譯
error: command 'D:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
關(guān)鍵錯(cuò)誤 1.:UserWarning: Error checking compiler version for cl: [WinError 2] 系統(tǒng)找
不到指定的文件。
定位位置:D:\Anaconda_app\envs\python37\lib\site-packages\torch\utils\cpp_extension.py:305行
看看這個(gè)地方怎么有錯(cuò)誤:
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平臺(tái),而是win平臺(tái),于是找到cl.exe的版本要求:
MINIMUM_MSVC_VERSION = (19, 0, 24215)# 這個(gè)在程序里面,txt文件打開,選定它,通過查找可以找到這個(gè)地方。
MSVC是一個(gè)編譯器,其編譯器名字叫"cl.exe",它是微軟專為VS開發(fā)的一款編譯器。
上面語句寫了 MSVC 最低的版本要求MSVC 19.0.24215.
?
MSC_VER的意思就是:Microsoft 的 C 編譯器的版本
MSC 1.0 _MSC_VER == 100
MSC 2.0 _MSC_VER == 200
MSC 3.0 _MSC_VER == 300
MSC 4.0 _MSC_VER == 400
MSC 5.0 _MSC_VER == 500
MSC 6.0 _MSC_VER == 600
MSC 7.0 _MSC_VER == 700
MSVC++ 1.0 _MSC_VER == 800
MSVC++ 2.0 _MSC_VER == 900
MSVC++ 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所在的路徑添加到系統(tǒng)環(huán)境變量中,也就是path中,別忘了重啟電腦。問題解決
第一步解決。
錯(cuò)誤 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...。這個(gè)ninja是什么東東,這里不管一會(huì)安裝上就行
如何安裝ninja文章來源:http://www.zghlxwxcb.cn/news/detail-731531.html
pip install ninja
運(yùn)行結(jié)果文章來源地址http://www.zghlxwxcb.cn/news/detail-731531.html
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Collecting ninja
Downloading ninja-1.11.1-py2.py3-none-win_amd64.whl (313 kB)
|████████████████████████████████| 313 kB 939 kB/s
Installing collected packages: ninja
Successfully installed ninja-1.11.1
到了這里,關(guān)于Error checking compiler version for cl: [WinError 2] 系統(tǒng)找 不到指定的文件[已解決]的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!