win7+64bit+VS2012下OpenBlas的编译和安装

要安装OpenBlas,首先需要用MinGW对OpenBlas进行编译,对于64bit的操作系统,我们用下述方法安装MinGW.

一. Win7 64位中MinGW和MSYS的安装

背景:

A.  由于需要在Win7 64位系统下使用Visual Studio,并调用OpenBlas库,所以需要gcc在windows下编译该库。

B.  MinGW集成了众多的编译器,因此想通过安装MinGW来使用gcc。同时,需要通过MSYS使用与编译相关的命令行。因此,需要同时安装MinGW和        MSYS。

C.  通常,网上能找到的MinGW安装包中(http://www.mingw.org)都已经附带了MSYS组件,且提供了GUI界面,因此安装较为容易,可参考本人博文    (Windows 中OpenBlas 的安装 - Windows 32bit 适用 )。然而,针对MinGW,这些安装包中的编译器往往只适用于Win32,        而不适用于Win64。

D.  因此,若要在Win7 64位中使用MinGW,就需要特别安装 MinGW-w64。

E.  MinGW和MSYS是两个可独立使用的组件。MinGW对操作系统敏感。


安装:

(.venv) PS E:\PyTorch_Build\pytorch\build> # 搜索整个构建目录中的所有构建文件 (.venv) PS E:\PyTorch_Build\pytorch\build> $buildRoot = "E:\PyTorch_Build\pytorch\build" (.venv) PS E:\PyTorch_Build\pytorch\build> $allBuildFiles = Get-ChildItem -Path $buildRoot -Recurse -Include *.pyd, *.dll, *.lib (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> if ($allBuildFiles.Count -eq 0) { >> # 如果没有找到任何构建文件,重新运行构建过程 >> Write-Host "未找到任何构建文件,重新运行构建过程..." >> cd "E:\PyTorch_Build\pytorch" >> python setup.py install >> $allBuildFiles = Get-ChildItem -Path $buildRoot -Recurse -Include *.pyd, *.dll, *.lib >> } (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> # 打印找到的文件 (.venv) PS E:\PyTorch_Build\pytorch\build> Write-Host "找到的构建文件:" 找到的构建文件: (.venv) PS E:\PyTorch_Build\pytorch\build> $allBuildFiles | ForEach-Object { Write-Host " - $($_.FullName)" } - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\charset_normalizer\md__mypyc.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\charset_normalizer\md.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\markupsafe\_speedups.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\lib\npymath.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_multiarray_tests.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_multiarray_tests.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_multiarray_umath.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_multiarray_umath.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_operand_flag_tests.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_operand_flag_tests.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_rational_tests.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_rational_tests.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_simd.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_simd.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_struct_ufunc_tests.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_struct_ufunc_tests.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_umath_tests.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\_core\_umath_tests.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\fft\_pocketfft_umath.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\fft\_pocketfft_umath.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\linalg\_umath_linalg.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\linalg\_umath_linalg.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\linalg\lapack_lite.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\linalg\lapack_lite.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\lib\npyrandom.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_bounded_integers.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_bounded_integers.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_common.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_common.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_generator.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_generator.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_mt19937.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_mt19937.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_pcg64.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_pcg64.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_philox.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_philox.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_sfc64.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\_sfc64.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\bit_generator.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\bit_generator.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\mtrand.cp310-win_amd64.lib - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy\random\mtrand.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy.libs\libscipy_openblas64_-13e2df515630b4a41f92893938845698.dll - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\numpy.libs\msvcp140-263139962577ecda4cd9469ca360a746.dll - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\optree\_C.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\psutil\_psutil_windows.pyd - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\yaml\_yaml.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\bin\c10_cuda.dll - E:\PyTorch_Build\pytorch\build\bin\c10.dll - E:\PyTorch_Build\pytorch\build\bin\caffe2_nvrtc.dll - E:\PyTorch_Build\pytorch\build\bin\nnapi_backend.dll - E:\PyTorch_Build\pytorch\build\bin\shm.dll - E:\PyTorch_Build\pytorch\build\bin\torch_cpu.dll - E:\PyTorch_Build\pytorch\build\bin\torch_cuda.dll - E:\PyTorch_Build\pytorch\build\bin\torch_global_deps.dll - E:\PyTorch_Build\pytorch\build\bin\torch_python.dll - E:\PyTorch_Build\pytorch\build\bin\torch.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-console-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-datetime-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-debug-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-errorhandling-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-file-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-file-l1-2-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-file-l2-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-handle-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-heap-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-interlocked-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-libraryloader-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-localization-l1-2-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-memory-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-namedpipe-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-processenvironment-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-processthreads-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-processthreads-l1-1-1.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-profile-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-rtlsupport-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-string-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-synch-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-synch-l1-2-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-sysinfo-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-timezone-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-core-util-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-conio-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-convert-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-environment-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-filesystem-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-heap-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-locale-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-math-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-multibyte-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-private-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-process-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-runtime-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-stdio-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-string-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-time-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\api-ms-win-crt-utility-l1-1-0.dll - E:\PyTorch_Build\pytorch\build\Dependencies\ClrPhlib.dll - E:\PyTorch_Build\pytorch\build\Dependencies\dbghelp.dll - E:\PyTorch_Build\pytorch\build\Dependencies\DependenciesLib.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Dragablz.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Mono.Cecil.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Mono.Cecil.Mdb.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Mono.Cecil.Pdb.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Mono.Cecil.Rocks.dll - E:\PyTorch_Build\pytorch\build\Dependencies\MSVCP140.dll - E:\PyTorch_Build\pytorch\build\Dependencies\NDesk.Options.dll - E:\PyTorch_Build\pytorch\build\Dependencies\Newtonsoft.Json.dll - E:\PyTorch_Build\pytorch\build\Dependencies\ucrtbase.dll - E:\PyTorch_Build\pytorch\build\Dependencies\VCRUNTIME140_1.dll - E:\PyTorch_Build\pytorch\build\Dependencies\VCRUNTIME140.dll - E:\PyTorch_Build\pytorch\build\functorch\functorch.pyd - E:\PyTorch_Build\pytorch\build\lib\c10_cuda.lib - E:\PyTorch_Build\pytorch\build\lib\c10.lib - E:\PyTorch_Build\pytorch\build\lib\caffe2_nvrtc.lib - E:\PyTorch_Build\pytorch\build\lib\Caffe2_perfkernels_avx2.lib - E:\PyTorch_Build\pytorch\build\lib\cpuinfo_internals.lib - E:\PyTorch_Build\pytorch\build\lib\cpuinfo.lib - E:\PyTorch_Build\pytorch\build\lib\fmt.lib - E:\PyTorch_Build\pytorch\build\lib\functorch.lib - E:\PyTorch_Build\pytorch\build\lib\kineto.lib - E:\PyTorch_Build\pytorch\build\lib\libittnotify.lib - E:\PyTorch_Build\pytorch\build\lib\libjitprofiling.lib - E:\PyTorch_Build\pytorch\build\lib\libprotobuf-lite.lib - E:\PyTorch_Build\pytorch\build\lib\libprotobuf.lib - E:\PyTorch_Build\pytorch\build\lib\libprotoc.lib - E:\PyTorch_Build\pytorch\build\lib\microkernels-all.lib - E:\PyTorch_Build\pytorch\build\lib\microkernels-prod.lib - E:\PyTorch_Build\pytorch\build\lib\mimalloc.lib - E:\PyTorch_Build\pytorch\build\lib\nnapi_backend.lib - E:\PyTorch_Build\pytorch\build\lib\onnx_proto.lib - E:\PyTorch_Build\pytorch\build\lib\onnx.lib - E:\PyTorch_Build\pytorch\build\lib\pthreadpool.lib - E:\PyTorch_Build\pytorch\build\lib\shm.lib - E:\PyTorch_Build\pytorch\build\lib\torch_cpu.lib - E:\PyTorch_Build\pytorch\build\lib\torch_cuda.lib - E:\PyTorch_Build\pytorch\build\lib\torch_python.lib - E:\PyTorch_Build\pytorch\build\lib\torch.lib - E:\PyTorch_Build\pytorch\build\lib\XNNPACK.lib - E:\PyTorch_Build\pytorch\build\lib.win-amd64-cpython-310\functorch\_C.cp310-win_amd64.pyd - E:\PyTorch_Build\pytorch\build\sleef\lib\sleef.lib (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> $torchDir = "E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch" (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> foreach ($file in $allBuildFiles) { >> # 创建目标路径的目录结构 >> $relativePath = $file.FullName.Substring($buildRoot.Length) >> $destPath = Join-Path $torchDir $relativePath >> $destDir = [System.IO.Path]::GetDirectoryName($destPath) >> >> if (-not (Test-Path $destDir)) { >> New-Item -ItemType Directory -Path $destDir -Force | Out-Null >> } >> >> # 复制文件 >> Copy-Item -Path $file.FullName -Destination $destPath -Force >> Write-Host "已复制: $($file.Name) -> $relativePath" >> } 已复制: md__mypyc.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\charset_normalizer\md__mypyc.cp310-win_amd64.pyd 已复制: md.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\charset_normalizer\md.cp310-win_amd64.pyd 已复制: _speedups.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\markupsafe\_speedups.cp310-win_amd64.pyd 已复制: npymath.lib -> \.venv\Lib\site-packages\numpy\_core\lib\npymath.lib 已复制: _multiarray_tests.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_multiarray_tests.cp310-win_amd64.lib 已复制: _multiarray_tests.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_multiarray_tests.cp310-win_amd64.pyd 已复制: _multiarray_umath.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_multiarray_umath.cp310-win_amd64.lib 已复制: _multiarray_umath.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_multiarray_umath.cp310-win_amd64.pyd 已复制: _operand_flag_tests.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_operand_flag_tests.cp310-win_amd64.lib 已复制: _operand_flag_tests.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_operand_flag_tests.cp310-win_amd64.pyd 已复制: _rational_tests.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_rational_tests.cp310-win_amd64.lib 已复制: _rational_tests.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_rational_tests.cp310-win_amd64.pyd 已复制: _simd.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_simd.cp310-win_amd64.lib 已复制: _simd.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_simd.cp310-win_amd64.pyd 已复制: _struct_ufunc_tests.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_struct_ufunc_tests.cp310-win_amd64.lib 已复制: _struct_ufunc_tests.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_struct_ufunc_tests.cp310-win_amd64.pyd 已复制: _umath_tests.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\_core\_umath_tests.cp310-win_amd64.lib 已复制: _umath_tests.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\_core\_umath_tests.cp310-win_amd64.pyd 已复制: _pocketfft_umath.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\fft\_pocketfft_umath.cp310-win_amd64.lib 已复制: _pocketfft_umath.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\fft\_pocketfft_umath.cp310-win_amd64.pyd 已复制: _umath_linalg.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\linalg\_umath_linalg.cp310-win_amd64.lib 已复制: _umath_linalg.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\linalg\_umath_linalg.cp310-win_amd64.pyd 已复制: lapack_lite.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\linalg\lapack_lite.cp310-win_amd64.lib 已复制: lapack_lite.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\linalg\lapack_lite.cp310-win_amd64.pyd 已复制: npyrandom.lib -> \.venv\Lib\site-packages\numpy\random\lib\npyrandom.lib 已复制: _bounded_integers.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_bounded_integers.cp310-win_amd64.lib 已复制: _bounded_integers.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_bounded_integers.cp310-win_amd64.pyd 已复制: _common.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_common.cp310-win_amd64.lib 已复制: _common.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_common.cp310-win_amd64.pyd 已复制: _generator.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_generator.cp310-win_amd64.lib 已复制: _generator.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_generator.cp310-win_amd64.pyd 已复制: _mt19937.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_mt19937.cp310-win_amd64.lib 已复制: _mt19937.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_mt19937.cp310-win_amd64.pyd 已复制: _pcg64.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_pcg64.cp310-win_amd64.lib 已复制: _pcg64.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_pcg64.cp310-win_amd64.pyd 已复制: _philox.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_philox.cp310-win_amd64.lib 已复制: _philox.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_philox.cp310-win_amd64.pyd 已复制: _sfc64.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\_sfc64.cp310-win_amd64.lib 已复制: _sfc64.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\_sfc64.cp310-win_amd64.pyd 已复制: bit_generator.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\bit_generator.cp310-win_amd64.lib 已复制: bit_generator.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\bit_generator.cp310-win_amd64.pyd 已复制: mtrand.cp310-win_amd64.lib -> \.venv\Lib\site-packages\numpy\random\mtrand.cp310-win_amd64.lib 已复制: mtrand.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\numpy\random\mtrand.cp310-win_amd64.pyd 已复制: libscipy_openblas64_-13e2df515630b4a41f92893938845698.dll -> \.venv\Lib\site-packages\numpy.libs\libscipy_openblas64_-13e2df515630b4a41f92893938845698.dll 已复制: msvcp140-263139962577ecda4cd9469ca360a746.dll -> \.venv\Lib\site-packages\numpy.libs\msvcp140-263139962577ecda4cd9469ca360a746.dll 已复制: _C.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\optree\_C.cp310-win_amd64.pyd 已复制: _psutil_windows.pyd -> \.venv\Lib\site-packages\psutil\_psutil_windows.pyd 已复制: _yaml.cp310-win_amd64.pyd -> \.venv\Lib\site-packages\yaml\_yaml.cp310-win_amd64.pyd 已复制: c10_cuda.dll -> \bin\c10_cuda.dll 已复制: c10.dll -> \bin\c10.dll 已复制: caffe2_nvrtc.dll -> \bin\caffe2_nvrtc.dll 已复制: nnapi_backend.dll -> \bin\nnapi_backend.dll 已复制: shm.dll -> \bin\shm.dll 已复制: torch_cpu.dll -> \bin\torch_cpu.dll 已复制: torch_cuda.dll -> \bin\torch_cuda.dll 已复制: torch_global_deps.dll -> \bin\torch_global_deps.dll 已复制: torch_python.dll -> \bin\torch_python.dll 已复制: torch.dll -> \bin\torch.dll 已复制: api-ms-win-core-console-l1-1-0.dll -> \Dependencies\api-ms-win-core-console-l1-1-0.dll 已复制: api-ms-win-core-datetime-l1-1-0.dll -> \Dependencies\api-ms-win-core-datetime-l1-1-0.dll 已复制: api-ms-win-core-debug-l1-1-0.dll -> \Dependencies\api-ms-win-core-debug-l1-1-0.dll 已复制: api-ms-win-core-errorhandling-l1-1-0.dll -> \Dependencies\api-ms-win-core-errorhandling-l1-1-0.dll 已复制: api-ms-win-core-file-l1-1-0.dll -> \Dependencies\api-ms-win-core-file-l1-1-0.dll 已复制: api-ms-win-core-file-l1-2-0.dll -> \Dependencies\api-ms-win-core-file-l1-2-0.dll 已复制: api-ms-win-core-file-l2-1-0.dll -> \Dependencies\api-ms-win-core-file-l2-1-0.dll 已复制: api-ms-win-core-handle-l1-1-0.dll -> \Dependencies\api-ms-win-core-handle-l1-1-0.dll 已复制: api-ms-win-core-heap-l1-1-0.dll -> \Dependencies\api-ms-win-core-heap-l1-1-0.dll 已复制: api-ms-win-core-interlocked-l1-1-0.dll -> \Dependencies\api-ms-win-core-interlocked-l1-1-0.dll 已复制: api-ms-win-core-libraryloader-l1-1-0.dll -> \Dependencies\api-ms-win-core-libraryloader-l1-1-0.dll 已复制: api-ms-win-core-localization-l1-2-0.dll -> \Dependencies\api-ms-win-core-localization-l1-2-0.dll 已复制: api-ms-win-core-memory-l1-1-0.dll -> \Dependencies\api-ms-win-core-memory-l1-1-0.dll 已复制: api-ms-win-core-namedpipe-l1-1-0.dll -> \Dependencies\api-ms-win-core-namedpipe-l1-1-0.dll 已复制: api-ms-win-core-processenvironment-l1-1-0.dll -> \Dependencies\api-ms-win-core-processenvironment-l1-1-0.dll 已复制: api-ms-win-core-processthreads-l1-1-0.dll -> \Dependencies\api-ms-win-core-processthreads-l1-1-0.dll 已复制: api-ms-win-core-processthreads-l1-1-1.dll -> \Dependencies\api-ms-win-core-processthreads-l1-1-1.dll 已复制: api-ms-win-core-profile-l1-1-0.dll -> \Dependencies\api-ms-win-core-profile-l1-1-0.dll 已复制: api-ms-win-core-rtlsupport-l1-1-0.dll -> \Dependencies\api-ms-win-core-rtlsupport-l1-1-0.dll 已复制: api-ms-win-core-string-l1-1-0.dll -> \Dependencies\api-ms-win-core-string-l1-1-0.dll 已复制: api-ms-win-core-synch-l1-1-0.dll -> \Dependencies\api-ms-win-core-synch-l1-1-0.dll 已复制: api-ms-win-core-synch-l1-2-0.dll -> \Dependencies\api-ms-win-core-synch-l1-2-0.dll 已复制: api-ms-win-core-sysinfo-l1-1-0.dll -> \Dependencies\api-ms-win-core-sysinfo-l1-1-0.dll 已复制: api-ms-win-core-timezone-l1-1-0.dll -> \Dependencies\api-ms-win-core-timezone-l1-1-0.dll 已复制: api-ms-win-core-util-l1-1-0.dll -> \Dependencies\api-ms-win-core-util-l1-1-0.dll 已复制: api-ms-win-crt-conio-l1-1-0.dll -> \Dependencies\api-ms-win-crt-conio-l1-1-0.dll 已复制: api-ms-win-crt-convert-l1-1-0.dll -> \Dependencies\api-ms-win-crt-convert-l1-1-0.dll 已复制: api-ms-win-crt-environment-l1-1-0.dll -> \Dependencies\api-ms-win-crt-environment-l1-1-0.dll 已复制: api-ms-win-crt-filesystem-l1-1-0.dll -> \Dependencies\api-ms-win-crt-filesystem-l1-1-0.dll 已复制: api-ms-win-crt-heap-l1-1-0.dll -> \Dependencies\api-ms-win-crt-heap-l1-1-0.dll 已复制: api-ms-win-crt-locale-l1-1-0.dll -> \Dependencies\api-ms-win-crt-locale-l1-1-0.dll 已复制: api-ms-win-crt-math-l1-1-0.dll -> \Dependencies\api-ms-win-crt-math-l1-1-0.dll 已复制: api-ms-win-crt-multibyte-l1-1-0.dll -> \Dependencies\api-ms-win-crt-multibyte-l1-1-0.dll 已复制: api-ms-win-crt-private-l1-1-0.dll -> \Dependencies\api-ms-win-crt-private-l1-1-0.dll 已复制: api-ms-win-crt-process-l1-1-0.dll -> \Dependencies\api-ms-win-crt-process-l1-1-0.dll 已复制: api-ms-win-crt-runtime-l1-1-0.dll -> \Dependencies\api-ms-win-crt-runtime-l1-1-0.dll 已复制: api-ms-win-crt-stdio-l1-1-0.dll -> \Dependencies\api-ms-win-crt-stdio-l1-1-0.dll 已复制: api-ms-win-crt-string-l1-1-0.dll -> \Dependencies\api-ms-win-crt-string-l1-1-0.dll 已复制: api-ms-win-crt-time-l1-1-0.dll -> \Dependencies\api-ms-win-crt-time-l1-1-0.dll 已复制: api-ms-win-crt-utility-l1-1-0.dll -> \Dependencies\api-ms-win-crt-utility-l1-1-0.dll 已复制: ClrPhlib.dll -> \Dependencies\ClrPhlib.dll 已复制: dbghelp.dll -> \Dependencies\dbghelp.dll 已复制: DependenciesLib.dll -> \Dependencies\DependenciesLib.dll 已复制: Dragablz.dll -> \Dependencies\Dragablz.dll 已复制: Mono.Cecil.dll -> \Dependencies\Mono.Cecil.dll 已复制: Mono.Cecil.Mdb.dll -> \Dependencies\Mono.Cecil.Mdb.dll 已复制: Mono.Cecil.Pdb.dll -> \Dependencies\Mono.Cecil.Pdb.dll 已复制: Mono.Cecil.Rocks.dll -> \Dependencies\Mono.Cecil.Rocks.dll 已复制: MSVCP140.dll -> \Dependencies\MSVCP140.dll 已复制: NDesk.Options.dll -> \Dependencies\NDesk.Options.dll 已复制: Newtonsoft.Json.dll -> \Dependencies\Newtonsoft.Json.dll 已复制: ucrtbase.dll -> \Dependencies\ucrtbase.dll 已复制: VCRUNTIME140_1.dll -> \Dependencies\VCRUNTIME140_1.dll 已复制: VCRUNTIME140.dll -> \Dependencies\VCRUNTIME140.dll 已复制: functorch.pyd -> \functorch\functorch.pyd 已复制: c10_cuda.lib -> \lib\c10_cuda.lib 已复制: c10.lib -> \lib\c10.lib 已复制: caffe2_nvrtc.lib -> \lib\caffe2_nvrtc.lib 已复制: Caffe2_perfkernels_avx2.lib -> \lib\Caffe2_perfkernels_avx2.lib 已复制: cpuinfo_internals.lib -> \lib\cpuinfo_internals.lib 已复制: cpuinfo.lib -> \lib\cpuinfo.lib 已复制: fmt.lib -> \lib\fmt.lib 已复制: functorch.lib -> \lib\functorch.lib 已复制: kineto.lib -> \lib\kineto.lib 已复制: libittnotify.lib -> \lib\libittnotify.lib 已复制: libjitprofiling.lib -> \lib\libjitprofiling.lib 已复制: libprotobuf-lite.lib -> \lib\libprotobuf-lite.lib 已复制: libprotobuf.lib -> \lib\libprotobuf.lib 已复制: libprotoc.lib -> \lib\libprotoc.lib 已复制: microkernels-all.lib -> \lib\microkernels-all.lib 已复制: microkernels-prod.lib -> \lib\microkernels-prod.lib 已复制: mimalloc.lib -> \lib\mimalloc.lib 已复制: nnapi_backend.lib -> \lib\nnapi_backend.lib 已复制: onnx_proto.lib -> \lib\onnx_proto.lib 已复制: onnx.lib -> \lib\onnx.lib 已复制: pthreadpool.lib -> \lib\pthreadpool.lib 已复制: shm.lib -> \lib\shm.lib 已复制: torch_cpu.lib -> \lib\torch_cpu.lib 已复制: torch_cuda.lib -> \lib\torch_cuda.lib 已复制: torch_python.lib -> \lib\torch_python.lib 已复制: torch.lib -> \lib\torch.lib 已复制: XNNPACK.lib -> \lib\XNNPACK.lib 已复制: _C.cp310-win_amd64.pyd -> \lib.win-amd64-cpython-310\functorch\_C.cp310-win_amd64.pyd 已复制: sleef.lib -> \sleef\lib\sleef.lib (.venv) PS E:\PyTorch_Build\pytorch\build> # 验证核心文件是否已复制 (.venv) PS E:\PyTorch_Build\pytorch\build> $criticalFiles = @( >> "_C.pyd", >> "_C_flatbuffer.pyd", >> "torch_python.dll", >> "c10.dll", >> "c10_cuda.dll" >> ) (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> foreach ($file in $criticalFiles) { >> $filePath = Join-Path $torchDir $file >> if (Test-Path $filePath) { >> Write-Host "[成功] 核心文件存在: $file" >> } else { >> Write-Host "[错误] 核心文件缺失: $file" >> >> # 尝试搜索整个系统 >> $found = Get-ChildItem -Path $buildRoot -Recurse -Filter $file -ErrorAction SilentlyContinue >> if ($found) { >> Write-Host " 文件位于: $($found.FullName)" >> Copy-Item -Path $found.FullName -Destination $torchDir -Force >> Write-Host " 已手动复制文件" >> } else { >> Write-Host " 系统中未找到此文件" >> } >> } >> } [错误] 核心文件缺失: _C.pyd 系统中未找到此文件 [错误] 核心文件缺失: _C_flatbuffer.pyd 系统中未找到此文件 [错误] 核心文件缺失: torch_python.dll 文件位于: E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch\bin\torch_python.dll E:\PyTorch_Build\pytorch\build\bin\torch_python.dll 已手动复制文件 [错误] 核心文件缺失: c10.dll 文件位于: E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch\bin\c10.dll E:\PyTorch_Build\pytorch\build\bin\c10.dll 已手动复制文件 [错误] 核心文件缺失: c10_cuda.dll 文件位于: E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch\bin\c10_cuda.dll E:\PyTorch_Build\pytorch\build\bin\c10_cuda.dll 已手动复制文件 (.venv) PS E:\PyTorch_Build\pytorch\build> # 保存为 check_build.ps1 (.venv) PS E:\PyTorch_Build\pytorch\build> $buildRoot = "E:\PyTorch_Build\pytorch\build" (.venv) PS E:\PyTorch_Build\pytorch\build> $requiredFiles = @( >> "lib.win-amd64-cpython-310\torch\_C.pyd", >> "lib.win-amd64-cpython-310\torch\lib\c10.dll", >> "lib.win-amd64-cpython-310\torch\lib\torch_cuda.dll" >> ) (.venv) PS E:\PyTorch_Build\pytorch\build> (.venv) PS E:\PyTorch_Build\pytorch\build> Write-Host "=== 构建完整性检查 ===" === 构建完整性检查 === (.venv) PS E:\PyTorch_Build\pytorch\build> foreach ($file in $requiredFiles) { >> $fullPath = Join-Path $buildRoot $file >> $exists = Test-Path $fullPath >> >> if ($exists) { >> Write-Host "[✓] $file" >> } else { >> Write-Host "[✗] $file" >> Write-Host " 文件缺失,请检查构建日志" >> >> # 检查构建日志 >> $logPath = Join-Path $buildRoot "build.log" >> if (Test-Path $logPath) { >> $errorLines = Get-Content $logPath | Select-String "error" -CaseSensitive >> if ($errorLines) { >> Write-Host " 构建日志中的错误:" >> $errorLines | Select-Object -First 5 | ForEach-Object { Write-Host " $_" } >> } >> } >> } >> } [✗] lib.win-amd64-cpython-310\torch\_C.pyd 文件缺失,请检查构建日志 [✗] lib.win-amd64-cpython-310\torch\lib\c10.dll 文件缺失,请检查构建日志 [✗] lib.win-amd64-cpython-310\torch\lib\torch_cuda.dll 文件缺失,请检查构建日志 (.venv) PS E:\PyTorch_Build\pytorch\build> # 查看构建日志 (.venv) PS E:\PyTorch_Build\pytorch\build> Get-Content "E:\PyTorch_Build\pytorch\build\build.log" -Tail 50 Get-Content: Cannot find path 'E:\PyTorch_Build\pytorch\build\build.log' because it does not exist. (.venv) PS E:\PyTorch_Build\pytorch\build> # 检查CUDA编译器 (.venv) PS E:\PyTorch_Build\pytorch\build> nvcc --version nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2025 NVIDIA Corporation Built on Wed_Jul_16_20:06:48_Pacific_Daylight_Time_2025 Cuda compilation tools, release 13.0, V13.0.48 Build cuda_13.0.r13.0/compiler.36260728_0 (.venv) PS E:\PyTorch_Build\pytorch\build> # 检查CUDA示例编译 (.venv) PS E:\PyTorch_Build\pytorch\build> cd "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\extras\demo_suite" Set-Location: Cannot find path 'E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\extras\demo_suite' because it does not exist. (.venv) PS E:\PyTorch_Build\pytorch\build> .\bandwidthTest.exe .\bandwidthTest.exe: The term '.\bandwidthTest.exe' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (.venv) PS E:\PyTorch_Build\pytorch\build> # 检查Python开发头文件 (.venv) PS E:\PyTorch_Build\pytorch\build> python -c "import sysconfig; print(sysconfig.get_config_var('INCLUDEPY'))" E:\Python310\Include (.venv) PS E:\PyTorch_Build\pytorch\build> # 检查MSVC编译器 (.venv) PS E:\PyTorch_Build\pytorch\build> cl.exe /? cl.exe: The term 'cl.exe' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (.venv) PS E:\PyTorch_Build\pytorch\build> # 运行所有检查 (.venv) PS E:\PyTorch_Build\pytorch\build> .\check_build.ps1 .\check_build.ps1: The term '.\check_build.ps1' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again. (.venv) PS E:\PyTorch_Build\pytorch\build> python torch_diagnose.py ================================================== PyTorch 环境诊断工具 ================================================== [系统信息] 操作系统: Windows-10-10.0.26100-SP0 Python版本: 3.10.10 (tags/v3.10.10:aad5f6a, Feb 7 2023, 17:20:36) [MSC v.1929 64 bit (AMD64)] Python路径: E:\PyTorch_Build\pytorch\build\.venv\Scripts\python.exe 工作目录: E:\PyTorch_Build\pytorch\build [环境变量] PATH: E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\PyTorch_Build\pytorch\build\lib;E:\OpenBLAS\bin;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\PyTorch_Build\pytorch\build\.venv\Scripts;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;C:\Program Files\PowerShell\7;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64;;E:\PyTorch_Build\pytorch\build\lib.win-amd64-cpython-310\torch\lib;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin;C:\Users\Administrator\AppData\Local\Microsoft\dotnet;C:\Users\Administrator\AppData\Local\Microsoft\dotnet;C:\Users\Administrator\AppData\Local\Microsoft\dotnet\;C:\Program Files\dotnet;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;E:\Python310;C:\Program Files\dotnet\;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools;E:\Python310\Scripts;E:\Python310\Scripts;C:\Program Files\PowerShell\7\;E:\Program Files\Microsoft VS Code\bin;E:\Program Files\Git\cmd;C:\Program Files\NVIDIA Corporation\Nsight Compute 2025.3.0\;E:\Program Files\CMake\bin;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files (x86)\Incredibuild;E:\PyTorch_Build\pytorch\build\lib.win-amd64-cpython-310\torch\lib;E:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\ProgramData\chocolatey\bin;E:\Program Files\Rust\.cargo\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;C:\Users\Administrator\.dotnet\tools PYTHONPATH: E:\PyTorch_Build\pytorch Torch目录: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch [核心文件检查] [✗] 文件存在: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch\_C.pyd [✗] 文件存在: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch\_C_flatbuffer.pyd [✓] 文件存在: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch\torch_python.dll [✓] 文件存在: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch\c10.dll [✓] 文件存在: E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages\torch\c10_cuda.dll [DLL依赖检查] [✗] DLL加载失败: _C.pyd - Could not find module '_C.pyd' (or one of its dependencies). Try using the full path with constructor syntax. [✗] DLL加载失败: _C_flatbuffer.pyd - Could not find module '_C_flatbuffer.pyd' (or one of its dependencies). Try using the full path with constructor syntax. [✗] DLL加载失败: torch_python.dll - Could not find module 'torch_python.dll' (or one of its dependencies). Try using the full path with constructor syntax. [✗] DLL加载失败: c10.dll - Could not find module 'c10.dll' (or one of its dependencies). Try using the full path with constructor syntax. [✗] DLL加载失败: c10_cuda.dll - Could not find module 'c10_cuda.dll' (or one of its dependencies). Try using the full path with constructor syntax. [模块导入测试] [✗] 模块导入失败: torch - DLL load failed while importing _C: 找不到指定的模块。 [错误详情] Traceback (most recent call last): File "E:\PyTorch_Build\pytorch\build\torch_diagnose.py", line 83, in main import torch File "E:\PyTorch_Build\pytorch\torch\__init__.py", line 423, in <module> from torch._C import * # noqa: F403 ImportError: DLL load failed while importing _C: 找不到指定的模块。 [调试信息] Python库路径: - E:\Python310\lib - E:\PyTorch_Build\pytorch\build\.venv\lib\site-packages PATH中的关键目录: - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\PyTorch_Build\pytorch\build\lib - E:\OpenBLAS\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\PyTorch_Build\pytorch\build\.venv\Scripts - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64 - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64 - E:\PyTorch_Build\pytorch\build\lib.win-amd64-cpython-310\torch\lib - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin - E:\Program Files\Microsoft VS Code\bin - E:\Program Files\CMake\bin - C:\Program Files\Microsoft SQL Server\150\Tools\Binn\ - C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\ - E:\PyTorch_Build\pytorch\build\lib.win-amd64-cpython-310\torch\lib - C:\ProgramData\chocolatey\bin - E:\Program Files\Rust\.cargo\bin (.venv) PS E:\PyTorch_Build\pytorch\build>
09-02
<think> 我们注意到尽管已经复制了很多文件,但核心的_C.pyd_C_flatbuffer.pyd仍然缺失,而且即使复制了其他DLL,加载时也出现错误。诊断工具显示在尝试加载这些DLL时失败,提示找不到模块或依赖项。 关键问题分析: 1. PyTorch的核心模块(如_C.pyd)可能没有被正确构建,或者构建后没有被放置在预期的位置。 2. 即使我们复制了文件,但可能目标位置(虚拟环境的torch包目录)并不是Python解释器期望的位置。 3. 依赖项问题:即使文件存在,它们可能依赖其他DLL,而这些DLL不在PATH中。 解决方案: 步骤1:确保构建过程生成了_C.pyd 步骤2:将构建生成的核心文件复制到虚拟环境的torch包目录的正确子目录中 步骤3:确保所有依赖的DLL(特别是CUDA相关的DLL)在PATH中 根据日志,我们发现构建过程中生成了`torch_python.dll`、`c10.dll`等,但没有生成`_C.pyd`。实际上,在Windows上,PyTorch的C扩展模块应该是`_C.pyd`(一个Python扩展DLL)。然而,在构建输出中,我们看到了`bin\torch_python.dll`,这可能就是PyTorch的核心模块,但它的名字不对(应该是`_C.pyd`)。 在PyTorch的构建系统中,`_C.pyd`应该是由`torch_python`模块生成的。在Windows上,它通常会被命名为`_C.pyd`并放置在`torch`目录下。而我们看到构建输出中有`bin\torch_python.dll`,这可能是由于构建配置问题导致输出目录文件名不正确。 我们需要做以下调整: 1. 将`bin`目录中的`torch_python.dll`复制到虚拟环境的`torch`目录并重命名为`_C.pyd`。 2. 同样,将其他必要的DLL(如`c10.dll`,`torch_cuda.dll`等)复制到`torch`目录下(或者确保它们在PATH中,但放在同一目录最保险)。 此外,日志中显示`_C_flatbuffer.pyd`也缺失,这个文件可能是由另一个目标生成的,同样应该在构建输出中查找。 因此,我们执行以下步骤: 步骤1:重命名并复制核心模块 ```powershell $torchDir = "E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch" # 从构建的bin目录复制torch_python.dll并重命名为_C.pyd $sourceFile = "E:\PyTorch_Build\pytorch\build\bin\torch_python.dll" $destFile = Join-Path $torchDir "_C.pyd" Copy-Item -Path $sourceFile -Destination $destFile -Force Write-Host "已复制并重命名: $sourceFile -> $destFile" # 同样,复制_C_flatbuffer.pyd(如果存在的话,否则暂时忽略) $sourceFile2 = "E:\PyTorch_Build\pytorch\build\bin\torch_flatbuffer.dll" $destFile2 = Join-Path $torchDir "_C_flatbuffer.pyd" if (Test-Path $sourceFile2) { Copy-Item -Path $sourceFile2 -Destination $destFile2 -Force Write-Host "已复制并重命名: $sourceFile2 -> $destFile2" } else { Write-Host "未找到 torch_flatbuffer.dll,跳过复制" } ``` 步骤2:复制其他必要的DLL到torch目录 我们将bin目录下的所有DLL复制到torch目录: ```powershell $buildBinDir = "E:\PyTorch_Build\pytorch\build\bin" Get-ChildItem -Path $buildBinDir -Filter "*.dll" | ForEach-Object { $destPath = Join-Path $torchDir $_.Name Copy-Item -Path $_.FullName -Destination $destPath -Force Write-Host "已复制: $($_.Name) 到 $torchDir" } ``` 步骤3:添加CUDA的bin目录到环境变量(如果尚未添加) 虽然之前已经添加,但为了确保当前会话有效,我们再次添加: ```powershell $cudaBin = "E:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin" $env:PATH = "$cudaBin;$env:PATH" ``` 步骤4:重新运行诊断工具 ```powershell python torch_diagnose.py ``` 如果仍然失败,我们使用依赖分析工具(Dependencies)检查`_C.pyd`的依赖是否满足。 注意:在Windows上,Python扩展模块(.pyd)本质上是一个DLL,所以依赖分析同样适用。 如果上述步骤仍然不能解决问题,我们需要检查构建日志,确认`_C`模块(即torch_python)是否确实被构建,以及是否有任何链接错误。 由于构建日志文件不存在(之前的命令显示找不到build.log),我们需要重新构建并保存日志: ```powershell cd E:\PyTorch_Build\pytorch python setup.py install --record files.txt 2>&1 | tee build.log ``` 然后检查build.log中关于`torch_python`的构建部分。 但是,考虑到我们已经进行到这一步,先尝试上述文件复制重命名步骤。 注意:在PyTorch的构建系统中,有时核心模块会输出到不同的目录。我们也可以尝试在构建目录中搜索`_C.pyd`: ```powershell Get-ChildItem -Path $buildRoot -Recurse -Filter "_C.pyd" ``` 如果找到了,直接复制到虚拟环境的torch目录。 现在,让我们执行这些步骤。 </think> 根据您的诊断日志,核心问题已明确:尽管已复制了必要的 DLL 文件,但关键的 Python C 扩展模块 `_C.pyd` `_C_flatbuffer.pyd` 仍然缺失,导致无法导入 torch 模块。我将提供一套完整的解决方案: ### 解决方案:修复缺失的 C 扩展模块 #### 1. 手动构建并复制核心模块 ```powershell # 进入 PyTorch 源码目录 cd E:\PyTorch_Build\pytorch # 清除之前的构建缓存 python setup.py clean # 仅构建核心模块 $env:BUILD_ONLY_CORE=1 python setup.py build --cmake-only # 查找生成的 _C.pyd 文件 $coreModuleDir = Get-ChildItem -Path "build\lib.win-amd64-cpython-310\torch" -Filter "_C.pyd" -Recurse | Select-Object -First 1 | ForEach-Object { $_.DirectoryName } # 如果没有找到,尝试备选路径 if (-not $coreModuleDir) { $coreModuleDir = "build\torch\csrc" } # 复制核心模块到虚拟环境 $torchDir = "E:\PyTorch_Build\pytorch\build\.venv\Lib\site-packages\torch" Get-ChildItem -Path $coreModuleDir -Filter "*.pyd" | Copy-Item -Destination $torchDir -Force ``` #### 2. 修复模块加载依赖路径 ```powershell # 创建路径修复脚本 $fixPathScript = @" import os import sys import ctypes def add_lib_path(): """将 torch 库目录添加到 DLL 搜索路径""" torch_dir = os.path.join(os.path.dirname(__file__)) try: # Windows 添加 DLL 搜索路径 os.add_dll_directory(torch_dir) # 修改环境 PATH current_path = os.environ.get('PATH', '') if torch_dir not in current_path: os.environ['PATH'] = f"{torch_dir};{current_path}" # 强制加载依赖 ctypes.CDLL(os.path.join(torch_dir, 'c10.dll')) ctypes.CDLL(os.path.join(torch_dir, 'torch_python.dll')) return True except Exception as e: print(f"路径修复失败: {e}") return False if __name__ == '__main__': print("正在修复模块加载路径...") success = add_lib_path() print(f"修复{'成功' if success else '失败'}") "@ # 保存到 torch 目录 Set-Content -Path "$torchDir\_fix_path.py" -Value $fixPathScript # 在 __init__.py 开头添加修复代码 $initPath = "$torchDir\__init__.py" $originalContent = Get-Content $initPath -Raw $fixedContent = @" # 自动添加的路径修复代码 try: from ._fix_path import add_lib_path add_lib_path() except ImportError as e: print(f"路径修复模块导入失败: {e}") $originalContent "@ Set-Content -Path $initPath -Value $fixedContent ``` #### 3. 验证修复结果 ```powershell # 运行验证脚本 python -c @" import torch print('='*50) print('PyTorch 加载成功!') print(f'版本: {torch.__version__}') print(f'CUDA 可用: {torch.cuda.is_available()}') if torch.cuda.is_available(): print(f'设备数量: {torch.cuda.device_count()}') print(f'设备 0: {torch.cuda.get_device_name(0)}') a = torch.ones(1000, device='cuda') b = torch.ones(1000, device='cuda') c = a + b print(f'计算验证: {c.sum().item()} (应为 2000)') print('='*50) "@ ``` ### 关键问题分析 从诊断日志中可以看出: ``` [核心文件检查] [✗] 文件存在: ..._C.pyd [✗] 文件存在: ..._C_flatbuffer.pyd [DLL依赖检查] [✗] DLL加载失败: _C.pyd - Could not find module [模块导入测试] [✗] 模块导入失败: torch - DLL load failed while importing _C ``` 这表明: 1. Python C 扩展模块(.pyd 文件)未正确构建或复制 2. 即使文件存在,加载路径或依赖关系不正确 3. 环境配置问题(特别是 DLL 搜索路径) ### 备选方案:强制重建核心模块 如果上述方法仍不成功,使用此完整重建脚本: ```powershell # 保存为 rebuild_core.ps1 $buildDir = "E:\PyTorch_Build\pytorch\build" Remove-Item -Path "$buildDir\*" -Recurse -Force -ErrorAction SilentlyContinue cd E:\PyTorch_Build\pytorch $env:USE_NINJA=0 $env:CMAKE_GENERATOR="Visual Studio 17 2022" $env:BUILD_TORCH=1 python setup.py build --cmake 2>&1 | tee build_core.log # 提取核心模块路径 $corePath = Select-String -Path build_core.log -Pattern "Generating .*_C\.pyd" | ForEach-Object { $_.Line.Split()[-1] } if ($corePath) { Copy-Item -Path $corePath -Destination $torchDir -Force Write-Host "核心模块已复制: $corePath -> $torchDir" } else { Write-Host "未找到核心模块,请检查 build_core.log" } ``` ### 最终验证流程 ```mermaid graph TD A[清除构建缓存] --> B[重建核心模块] B --> C{模块生成成功?} C -->|是| D[复制到虚拟环境] C -->|否| E[分析构建日志] D --> F[添加路径修复代码] F --> G[运行验证测试] G --> H{验证通过?} H -->|是| I[完成] H -->|否| J[使用依赖分析工具] J --> K[修复缺失依赖] K --> D ``` ### 常见问题解决方案 1. **"Generating _C.pyd failed"**: - 检查 Visual C++ 构建工具是否安装 - 确保 Python 开发头文件可用:`python -m ensurepip --default-pip` - 验证 CUDA 工具包与 PyTorch 版本的兼容性 2. **DLL 初始化错误**: ```powershell # 检查依赖关系 $dependencies = Join-Path (Get-Item $torchDir).Parent "Dependencies.exe" Start-Process $dependencies -ArgumentList "$torchDir\_C.pyd" ``` 3. **Python 解释器不匹配**: ```powershell # 验证 Python 架构 python -c "import platform; print(platform.architecture())" # 重新创建虚拟环境(确保匹配) python -m venv --clear .venv ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值