win10环境下,conda安装NCL(遇到的坑)

在Windows上安装和配置NCL的详细步骤
本文档详细介绍了如何在Windows10上安装Ubuntu子系统,然后通过conda安装miniconda,并在其中配置和使用NCL。首先,通过Microsoft Store安装Ubuntu18.04LTS,解决可能的wsl权限问题。接着,下载并安装miniconda,处理权限不足的错误。最后,创建NCL的conda环境并进行测试,确保NCL安装成功。整个过程包括了conda环境的激活、权限设置以及NCL的使用验证。

因为工作需要,必须安装使用NCL,然后通过官网的建议,是直接利用conda安装,接下来就是苦难之旅。

第一步,window安装子系统

win10已经支持安装Ubuntu虚拟系统,直接在 Microsoft Store 中搜索 Ubuntu 18.04 LTS (其它版本也行)选择安装。安装成功后可以在菜单中启动子系统。

第一次启动,此时可能会报错,提示如下:

The WSL optional component is not enabled. Please enable it and try again.
See https://aka.ms/wslinstall for details.
Error: 0x8007007e
Press any key to continue...

意思是wsl没有打开,wsl 全名为Windows Subsystem for Linux ,需要安装它才能运行ubuntu 。

这时候需要以管理员身份打开powershell ,输入以下命令安装:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

安装完成后,重启ubuntu就可以用了,第一次进入会提示创建用户和密码。

第二步,安装conda。

因为我只是需要利用NCL,所以就选择了体积较小的miniconda。去到官网下载最新的64 bit安装包。conda下载路径,选择了如下的sh文件下载。

<think>这个错误提示表明在安装PyCUDA时,需要Microsoft Visual C++ 14.0(即2015版本)或更高版本的构建工具(Build Tools),而不仅仅是可再发行组件(Redistributable)。可再发行组件是运行程序时需要的,而构建工具(包含编译器和相关工具)则是编译C/C++扩展时必需的。 解决方案: 1. 安装Microsoft C++ Build Tools(构建工具) 2. 确保安装时选择了正确的组件 具体步骤: 步骤1:访问 https://visualstudio.microsoft.com/visual-cpp-build-tools/ 下载构建工具安装程序。 步骤2:运行安装程序,选择安装“C++生成工具”(C++ Build Tools),并确保勾选以下工作负载和组件: - “C++生成工具”(核心组件,会自动选择必要的组件) - 可选的:如果安装过程中提示需要Windows 10 SDK,也请勾选。 步骤3:安装完成后,重新启动计算机(有时需要使环境变量生效)。 步骤4:尝试重新安装PyCUDA。 如果上述步骤后仍然有问题,可以尝试以下方法: 方法A:使用预编译的PyCUDA轮子(wheel) 访问 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda 下载与你的Python版本和系统架构(32位或64位)对应的预编译轮子文件(.whl),然后使用pip安装该文件。 例如,对于Python 3.9的64位系统,可以下载:pycuda‑2022.1+cuda118‑cp39‑cp39‑win_amd64.whl 然后使用命令: pip install 文件路径\pycuda‑2022.1+cuda118‑cp39‑cp39‑win_amd64.whl 方法B:使用conda安装(如果你使用的是Anacondaconda install -c conda-forge pycuda 方法C:确保安装的CUDA Toolkit版本与PyCUDA兼容,且环境变量设置正确(如CUDA_PATH指向正确的CUDA安装目录)。 下面是一个检查CUDA环境变量是否设置正确的示例代码(Python): </think># 解决 PyCUDA 安装时 Microsoft Visual C++ 14.0 缺失问题 您遇到的问题是由于 PyCUDA 需要完整的 **Microsoft Visual C++ Build Tools**,而不仅仅是可再发行组件包(Redistributable)。我将为您提供完整的解决方案。 ## 解决方案步骤 ### 1. 安装完整的 Visual C++ 构建工具 您需要安装完整的构建工具套件,而不仅仅是运行时库: ```powershell # 使用 PowerShell 安装构建工具 # 打开管理员权限的 PowerShell # 1. 安装 Visual Studio 安装程序 winget install --id Microsoft.VisualStudio.2022.BuildTools -e # 2. 安装必要的 C++ 构建工具 $installerPath = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vs_installer.exe" & $installerPath --quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended ``` **解释**: - `winget` 是 Windows 包管理器 - `--add Microsoft.VisualStudio.Workload.VCTools` 添加 C++ 构建工具工作负载 - `--includeRecommended` 包含所有推荐组件 - 整个过程大约需要 10-30 分钟(取决于网络速度) ### 2. 验证安装是否成功 安装完成后,检查环境变量是否设置正确: ```python # 验证 VC++ 构建工具的 Python 脚本 import os import subprocess # 检查关键环境变量 print("检查环境变量:") print(f"VCToolsInstallDir: {os.environ.get('VCToolsInstallDir', '未设置')}") print(f"PATH 包含 cl.exe: {'cl.exe' in os.environ['PATH']}") # 检查 cl.exe 是否可用 try: result = subprocess.run(['cl.exe'], capture_output=True, text=True) print("\ncl.exe 输出:") print(result.stderr if result.stderr else "cl.exe 正常工作") except FileNotFoundError: print("错误: cl.exe 未找到! 请确保构建工具正确安装") ``` ### 3. 配置环境变量(如果需要) 如果上述脚本显示 cl.exe 不可用,手动设置环境变量: ```powershell # 在 PowerShell 中设置环境变量 $vcPath = "${env:ProgramFiles}\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC" $latestVersion = Get-ChildItem $vcPath | Sort-Object Name -Descending | Select-Object -First 1 $vcBinPath = "$vcPath\$latestVersion\bin\Hostx64\x64" # 永久添加到系统 PATH [System.Environment]::SetEnvironmentVariable("PATH", "$([System.Environment]::GetEnvironmentVariable('PATH', 'Machine'));$vcBinPath", 'Machine') # 立即生效 $env:PATH = [System.Environment]::GetEnvironmentVariable("PATH", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("PATH", "User") ``` ### 4. 重新安装 PyCUDA ```bash # 首先卸载任何现有版本 pip uninstall -y pycuda # 清理旧构建 rmdir /s /q "%TEMP%\pip-build*" # 使用特定选项重新安装 pip install pycuda --no-cache-dir --global-option=build_ext --global-option="-IC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\include" --global-option="-LC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\vX.Y\lib\x64" ``` **注意**:将 `vX.Y` 替换为您的实际 CUDA 版本(如 v12.2) ## 替代解决方案 如果您仍然遇到问题,可以使用预编译的 PyCUDA 包: ### 方法1:使用预编译的 wheel 1. 访问 [Python 扩展包非官方仓库](https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycuda) 2. 下载与您的配置匹配的 wheel 文件(例如 `pycuda‑2022.1+cuda118‑cp39‑cp39‑win_amd64.whl`) 3. 安装: ```bash pip install pycuda‑2022.1+cuda118‑cp39‑cp39‑win_amd64.whl ``` ### 方法2:使用 Conda(推荐) ```bash conda create -n gpu_env python=3.9 conda activate gpu_env conda install -c conda-forge pycuda ``` ## 验证安装 ```python import pycuda.autoinit import pycuda.driver as drv import numpy as np # 测试 GPU 功能 a = np.random.randn(100).astype(np.float32) b = np.random.randn(100).astype(np.float32) c = np.zeros_like(a) a_gpu = drv.mem_alloc(a.nbytes) b_gpu = drv.mem_alloc(b.nbytes) c_gpu = drv.mem_alloc(c.nbytes) drv.memcpy_htod(a_gpu, a) drv.memcpy_htod(b_gpu, b) # 简单向量加法 from pycuda.elementwise import ElementwiseKernel add_kernel = ElementwiseKernel( "float *a, float *b, float *c", "c[i] = a[i] + b[i]", "add_kernel") add_kernel(a_gpu, b_gpu, c_gpu) drv.memcpy_dtoh(c, c_gpu) print("GPU 计算结果:", c[:5]) print("CPU 计算结果:", (a + b)[:5]) assert np.allclose(c, a + b) print("PyCUDA 安装成功!") ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UnknownBody

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值