当前位置: 首页 > news >正文

Windows 上使用 vscode + mingw 调试 python 程序

Windows 上使用 vscode + mingw 调试 python 程序

目的:在 win10/11 上能用 vscode 在 Anaconda3 的某个虚拟环境下调试 py 程序,同时使用 mingw64 命令行工具(不使用 PowerShell)。

msys64 安装(mingw64) 安装

下载:msys2-x86_64-20250622.exe

安装到:C:\DEVPACK\msys64

然后打开 msys2 命令行,执行下面的命令,更新安装开发环境:

$ pacman -Syu
$ pacman -Su
$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
$ pacman -S zip git	

根据实际情况,设置下面的系统环境变量(Win+R->sysdm.cpl->高级/环境变量/系统环境变量):

# 从windows继承环境变量
MSYS2_PATH_TYPE=inheritMSYS2_HOME=C:\DEVPACK\msys64
MSYS2_ROOT_BASH=/C/DEVPACK/msys64

Anaconda3 安装

下载 Anaconda3-2025.06-0-Windows-x86_64.exe

C:\DEVPACK:\Anaconda3

设置下面的系统环境变量:

ANACONDA3_HOME=C:\DEVPACK\Anaconda3
ANACONDA3_ROOT_BASH=/C/DEVPACK/Anaconda3

创建py虚拟环境:pytorch_env

conda env list
conda create -n pytorch_env python=3.12 -y

假设要激活的虚拟环境为:pytorch_env。创建虚拟环境文件:pytorch.env,全部内容如下:

#!/bin/bash
# 2025-05-19 for windows+mingw
# source pytorch_env.sh#--------------------------------
# 可选环境变量
#--------------------------------
##export HF_HUB_DISABLE_SYMLINKS_WARNING=1
##export HF_ENDPOINT="https://hf-mirror.com"# Windows 平台自动转为: D:/huggingface
##export HF_HOME=/d/huggingface
##export HF_MODELS=${HF_HOME}/models#--------------------------------
# 必须的设置
#--------------------------------
source "$ANACONDA3_BASH_ROOT/etc/profile.d/conda.sh"
conda activate pytorch_env

项目目录结构 (假设项目:aistock)

aistock/.git/.vscode/settings.jsonlaunch.json.gitignore.envstart.py
  • .env (可选)

      # 使用 `python-dotenv` 库来管理环境变量,它允许我们从 `.env` 文件中读取环境变量并设置到当前环境中。它能使我们避免修改系统环境变量。# 安装:pip install python-dotenv# 用法:#----------------------------------------------# import os# from dotenv import load_dotenv# load_dotenv()  # 默认加载当前目录下的.env文件# SECRET_KEY= os.environ['SECRET_KEY']# print('SECRET_KEY=', SECRET_KEY)#----------------------------------------------# 示例环境变量SECRET_KEY=a1e8bcb0f6f048bfd99b076c4996fa78
    
  • settings.json 完整内容:

      {"editor.suggestSelection": "first","vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue","window.zoomLevel": 1,"git.ignoreLegacyWarning": true,"editor.formatOnSave": false,"editor.formatOnPaste": false,"editor.formatOnType": false,// 禁用所有格式化提供程序"editor.defaultFormatter": null,// 终端配置"terminal.integrated.profiles.windows": {"MINGW64": {"path": ["${env:MSYS2_ROOT_BASH}/usr/bin/bash.exe"],"icon": "terminal-bash","args": ["--login","-i"],"env": {"MSYSTEM": "MINGW64","CHERE_INVOKING": "1","CONTITLE": "MinGW x64","C_INCLUDE_PATH": "/mingw64/include","CPLUS_INCLUDE_PATH": "/mingw64/include","PATH": "/usr/bin;/mingw64/bin;${env:PATH}"}}},"terminal.integrated.defaultProfile.windows": "MINGW64",// 文件关联"files.associations": {"*.h": "c","*.c": "c","*.py": "python","*.java": "java","*.cpp": "cpp","*.cxx": "cpp","*.hpp": "cpp","*.hxx": "cpp","*.js": "javascript","*.ts": "typescript","*.json": "json","*.html": "html","*.css": "css","*.md": "markdown","*.xml": "xml","*.yaml": "yaml","*.yml": "yaml","*.sh": "shellscript","*.bash": "shellscript","*.txt": "plaintext","*.csv": "csv","*.log": "log","*.conf": "properties","*.ini": "properties","*.bat": "batch"},// CMake 配置"cmake.ignoreCMakeListsMissing": true,// ============================// Python 配置// ============================// 1. Python 解释器路径"python.defaultInterpreterPath": "${env:ANACONDA3_ROOT_BASH}/envs/pytorch_env/python.exe",// 2. 虚拟环境配置"python.venvPath": "${workspaceFolder}/.env","python.terminal.activateEnvironment": true,// 3. 强制使用 MINGW64 终端(关键设置)"python.terminal.launchArgs": ["--login", "-i"],"python.terminal.executeInFileDir": true,"python.terminal.activateEnvInCurrentTerminal": true,// 4. 终端集成设置"terminal.integrated.inheritEnv": true,"terminal.integrated.automationShell.windows": "${env:MSYS2_ROOT_BASH}/usr/bin/bash.exe",// 5. Python 特定终端设置"python.terminal.launchOptions": {"shellPath": "${env:MSYS2_ROOT_BASH}/usr/bin/bash.exe","shellArgs": ["--login", "-i"],"env": {"MSYSTEM": "MINGW64","PATH": "/usr/bin;/mingw64/bin;${env:PATH}"}},// 6. 调试器设置"debug.console.acceptFocusCommands": true,"debug.console.wordWrap": true,"debug.console.lineHeight": 1.2,"debug.console.fontFamily": "Consolas, 'Courier New', monospace","debug.console.fontSize": 13,// 7. Python 调试配置"python.debug.console": "integratedTerminal","python.debug.justMyCode": true,"python.debug.forceWindowsSubsystem": false,// Python 分析设置"python.analysis.typeCheckingMode": "basic",// 禁用所有格式化功能"python.formatting.provider": "none",  // 关键:完全禁用格式化提供程序"[python]": {"editor.formatOnSave": false,      // 确保保存时不格式化"editor.rulers": [120]             // 保留120字符参考线},// 禁用所有行长度警告"python.linting.flake8Enabled": true,"python.linting.pylintEnabled": false,"flake8.args": ["--ignore=E501,W505,E231,E203","--max-line-length=999","--extend-ignore=E501"],"python.linting.flake8CategorySeverity.E": "Information",  // 降低严重级别// 禁用语言服务器的行长检查"python.analysis.diagnosticSeverityOverrides": {"reportGeneralTypeIssues": "none","line-too-long": "none"    // 确保 Pylance 不报告行长问题},// 可选:禁用所有 Python 提示和警告. 核选项:完全禁用所有 linting// "python.linting.enabled": false}
    
  • launch.json 完整内容

      {"version": "0.2.0","configurations": [    {"name": "pytorch_env","type": "debugpy","python": "python.exe","request": "launch","program": "${file}","args": [],"cwd": "${workspaceFolder}","env": {"PATH": "${env:ANACONDA3_ROOT_BASH}/envs/pytorch_env:${env:PATH}" // 确保环境路径优先}}]}
    

调试项目:aistock

使用 mingw64 命令行工具:

运行程序:

cd /d/huggingface/scripts/aistock/
source pytorch.env
python start.py

使用 vscode 调试:

cd /d/huggingface/scripts/aistock/
code .打开 start.py,按 F5 调试即可。
http://www.dtcms.com/a/265969.html

相关文章:

  • 国内MCP服务平台推荐!aibase.cn上线MCP服务器集合平台
  • 二叉树的右视图C++
  • MySQL的窗口函数介绍
  • 每日算法刷题Day41 6.28:leetcode前缀和2道题,用时1h20min(要加快)
  • golang json omitempty 标签研究
  • 图论基础算法入门笔记
  • OOM电商系统订单缓存泄漏,这是泄漏还是溢出
  • 免费一键自动化申请、续期、部署、监控所有 SSL/TLS 证书,ALLinSSL开源免费的 SSL 证书自动化管理平台
  • 【进阶篇-消息队列】——RocketMQ如何实现事务的
  • HarmonyOS ArkTS卡片堆叠滑动组件实战与原理详解(含源码)
  • 如何挖掘客户的隐性需求
  • 474. 一和零
  • 【华为od刷题(C++)】HJ22 汽水瓶
  • ubuntu22 桌面版开启root登陆
  • ubuntu22.04安装anaconda
  • embbding you should know
  • 独立开发者软件出海:如何用Semrush高效洞察与增长
  • 【Note】《深入理解Linux内核》Chapter 10 :Linux 内核中的系统调用机制全解析
  • 贝叶斯深度学习:赋予AI不确定性感知的认知革命
  • 【Oracle学习笔记】8.函数(Function)
  • 湖北理元理律师事务所的债务管理方法论
  • 算法刷题打卡(1)—— 快速排序
  • 睿尔曼系列机器人——以创新驱动未来,重塑智能协作新生态(上)
  • 【python】OOP:Object-Oriented Programming
  • 数字人分身+矩阵系统聚合+碰一碰发视频: 源码搭建-支持OEM
  • AI开发平台:从技术壁垒到全民创新,AI 开发平台如何重构产业生态?
  • C++ 标准模板库算法之 transform 用法
  • STC8G 8051内核单片机开发 (中断)
  • 在 UniApp 项目中巧用开发工具与 AI 插件:全面提升开发到部署的效率
  • 【时间序列数据处理的噩梦与救赎:一次复杂数据可视化问题的深度复盘】