在WSL2+VSCode环境下全局配置Numba @njit调试环境变量的方法
在WSL2 + VSCode中全局配置Numba调试环境变量(禁用JIT)
.numba_config.yaml不生效通常是因为VSCode运行时的工作目录与配置文件所在目录不一致,或者配置文件优先级低于环境变量。以下是几种全局设置Numba环境变量的可靠方法:
临时生效(当前WSL会话)
- 打开WSL终端,执行以下命令设置环境变量:
export NUMBA_DISABLE_JIT=1 export NUMBA_DEBUG=1 - 从该终端启动VSCode:
code .,此时VSCode会继承当前会话的环境变量,调试时Numba会禁用JIT并开启调试模式。
永久全局生效(所有WSL用户)
- 编辑WSL的全局环境配置文件,比如
/etc/profile:sudo nano /etc/profile - 在文件末尾添加两行:
export NUMBA_DISABLE_JIT=1 export NUMBA_DEBUG=1 - 保存退出后,执行
source /etc/profile使配置立即生效,后续所有WSL会话启动的VSCode都会自动加载这些变量。
仅当前用户永久生效
- 编辑用户个人的shell配置文件,比如Bash用户编辑
~/.bashrc,Zsh用户编辑~/.zshrc:nano ~/.bashrc - 在文件末尾添加同样的环境变量配置,保存后执行
source ~/.bashrc,之后当前用户启动的所有WSL会话都会生效。
仅VSCode调试任务生效(推荐,不影响全局环境)
- 打开VSCode的
.vscode/launch.json文件(没有则创建),在调试配置的env字段中添加环境变量:{ "version": "0.2.0", "configurations": [ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "env": { "NUMBA_DISABLE_JIT": "1", "NUMBA_DEBUG": "1" } } ] } - 这样每次使用该调试配置启动时,Numba会自动禁用JIT并开启调试,不会影响WSL系统的全局环境。
验证配置是否生效
在你的Python代码中添加以下代码片段,运行后查看输出是否为1:
import os print("NUMBA_DISABLE_JIT:", os.getenv("NUMBA_DISABLE_JIT")) print("NUMBA_DEBUG:", os.getenv("NUMBA_DEBUG"))
注意:Numba的环境变量优先级高于
.numba_config.yaml配置文件,所以如果之前的yaml配置不生效,用环境变量的方式可以确保覆盖配置。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

