首页 > 开发工具 > VSCode > 正文

VSCode怎么运行Python脚本_VSCode执行和调试Python代码的方法教程

星夢妙者
发布: 2025-08-29 11:21:01
原创
1147人浏览过
答案:在VSCode中运行Python脚本需先安装Python及Python扩展,再通过命令面板选择正确的解释器,随后可点击右上角运行按钮或使用集成终端执行脚本,调试时可设置断点并利用调试控制条进行单步执行、变量监视等操作,常见问题如模块未找到、语法错误、文件路径错误等可通过检查环境配置、依赖安装和路径设置解决。

vscode怎么运行python脚本_vscode执行和调试python代码的方法教程

在VSCode里运行Python脚本,其实核心就是两件事:让VSCode知道用哪个Python解释器来执行你的代码,以及如何触发这个执行过程。最直接的方法就是利用VSCode内置的终端或者它强大的调试功能。只要你的Python环境配置得当,VSCode的Python扩展也安装了,那么无论是点击运行按钮,还是设置断点进行调试,都变得非常直观。


解决方案

要让VSCode顺利地跑起来你的Python代码,我们得先确保几个基础条件满足,然后才能谈到具体的执行和调试。

首先,你得确保系统里已经安装了Python,并且VSCode也已经装好。接着,最关键的一步是安装VSCode的“Python”扩展,这是微软官方出品的,它能提供代码补全、语法检查、调试等一系列功能。装好之后,重启一下VSCode通常是个好习惯。

运行Python脚本

立即学习Python免费学习笔记(深入)”;

  1. 选择Python解释器: 这是第一步,也是最重要的一步。打开你的Python文件后,按

    Ctrl+Shift+P
    登录后复制
    (macOS:
    Cmd+Shift+P
    登录后复制
    ) 调出命令面板,输入“Python: Select Interpreter”,然后从列表中选择你想要使用的Python版本。比如,你可能装了Python 3.8、3.9,或者某个虚拟环境里的Python,这里要选对。选错了解释器,轻则代码跑不起来,重则依赖包找不到,那可就麻烦了。

  2. 通过编辑器直接运行:

    • 当你打开一个
      .py
      登录后复制
      文件时,VSCode右上角通常会出现一个小的“播放”按钮(一个三角形)。点击它,VSCode就会在集成终端里运行你的脚本。
    • 或者,你可以在编辑器里右键点击,选择“Run Python File in Terminal”。这两种方式本质上都是在VSCode的集成终端里执行
      python your_script.py
      登录后复制
      命令。
  3. 在集成终端中手动运行:

    • 打开VSCode的集成终端(
      Ctrl+``
      登录后复制
      或者从“View”菜单选择“Terminal”)。
    • 确保终端的当前工作目录是你Python脚本所在的目录。如果不是,用
      cd
      登录后复制
      命令切换过去。
    • 直接输入
      python your_script.py
      登录后复制
      并回车。这种方式的好处是,你可以带上各种命令行参数,或者在执行前先做一些环境设置。

调试Python代码

调试是找出代码问题、理解程序流程的利器。VSCode的Python调试功能非常强大。

  1. 设置断点: 在你想要暂停代码执行的行号左侧点击一下,会出现一个红点,这就是断点。程序运行到这里就会停下来。

  2. 启动调试:

    • 点击VSCode左侧活动栏的“运行和调试”图标(一个带有播放按钮的虫子)。
    • 如果你是第一次调试,它会提示你选择一个调试配置。最简单的是选择“Python File”,它会直接运行当前打开的Python文件并进入调试模式。
    • 如果你需要更复杂的配置,比如传递命令行参数、设置环境变量、或者调试特定的模块,你可以选择“Add Configuration...”来生成一个
      launch.json
      登录后复制
      文件。在这个文件里,你可以自定义各种调试选项。
  3. 调试控制:

    • 程序在断点处暂停后,VSCode顶部会出现一个调试控制条:
      • 继续 (Continue): 运行到下一个断点或程序结束。
      • 单步跳过 (Step Over): 执行当前行,如果当前行是一个函数调用,则跳过函数内部,直接到下一行。
      • 单步调试 (Step Into): 如果当前行是一个函数调用,则进入函数内部进行调试。
      • 单步跳出 (Step Out): 从当前函数中跳出,回到调用它的地方。
      • 重启 (Restart): 重新启动调试会话。
      • 停止 (Stop): 停止调试。
    • 在调试过程中,你可以在左侧的“变量”面板查看当前作用域内的所有变量值,在“监视”面板添加你特别关心的变量,在“调用堆栈”面板查看函数调用链。这些工具能帮你清晰地了解程序运行时的状态。

如何确保VSCode正确识别我的Python环境?

这真的是个老生常谈的问题,但它又是如此关键,以至于我每次帮朋友解决VSCode Python问题时,第一步都是问:“你选对解释器了吗?”很多时候,代码没法运行,或者依赖包找不到,根源就在这里。

VSCode识别Python环境主要依赖于它安装的Python扩展。这个扩展会扫描你的系统,尝试找到所有已安装的Python解释器,包括那些在虚拟环境(如

venv
登录后复制
conda
登录后复制
)里的。

选择解释器的正确姿势:

  1. 命令面板大法: 最稳妥的方法是使用

    Ctrl+Shift+P
    登录后复制
    (macOS:
    Cmd+Shift+P
    登录后复制
    ) 调出命令面板,然后输入“Python: Select Interpreter”。VSCode会列出它找到的所有Python解释器。这里你得仔细看看,确保选中了你项目所需的那个。比如,你的项目可能依赖Python 3.9,但你误选了系统自带的Python 3.8,那肯定会出问题。

  2. 虚拟环境的优先级: 如果你的项目使用了虚拟环境(强烈推荐!),那么在项目文件夹内打开VSCode时,Python扩展通常会智能地检测到这个虚拟环境,并将其推荐为默认解释器。如果没自动选上,你也可以通过上述命令面板手动选择。选择虚拟环境的好处是,项目的依赖包都安装在这个独立的环境里,不会污染全局Python,也不会与其他项目的依赖冲突。

    行者AI
    行者AI

    行者AI绘图创作,唤醒新的灵感,创造更多可能

    行者AI 100
    查看详情 行者AI
  3. settings.json
    登录后复制
    的幕后: 虽然现在VSCode更推荐通过UI来选择解释器,但了解其背后的机制也很有用。当你选择一个解释器后,VSCode会在你的工作区(
    .vscode
    登录后复制
    文件夹下的
    settings.json
    登录后复制
    )或用户设置中更新
    "python.defaultInterpreterPath"
    登录后复制
    (或者更旧的
    "python.pythonPath"
    登录后复制
    )这个配置项。这个路径就是VSCode用来启动Python进程的解释器路径。如果你遇到解释器选择上的怪异行为,检查这个文件有时能发现端倪。

可能遇到的坑:

  • 找不到解释器: 确保Python已经正确安装,并且其路径被添加到了系统的环境变量PATH中。如果你使用的是Windows,安装Python时勾选“Add Python to PATH”非常重要。
  • 虚拟环境未激活: 有时候你虽然选择了虚拟环境的解释器,但终端里显示的还是全局Python。这通常是因为VSCode的终端默认没有“激活”虚拟环境。你可以在终端里手动运行虚拟环境的激活脚本(例如
    source .venv/bin/activate
    登录后复制
    .\.venv\Scripts\activate
    登录后复制
    ),或者在
    launch.json
    登录后复制
    中配置
    "justMyCode": false
    登录后复制
    来确保调试器能正确进入虚拟环境。
  • 多版本Python冲突: 尤其是在macOS或Linux上,系统可能自带一个老版本的Python。确保你的VSCode指向的是你手动安装的、更新的Python版本。

VSCode调试Python时,有哪些高级技巧可以提升效率?

调试不仅仅是设置断点、单步执行那么简单。VSCode提供了很多高级调试功能,用好了能大大提升我们排查问题和理解代码的效率。在我看来,这些技巧才是真正让VSCode调试变得强大的地方。

  1. 条件断点 (Conditional Breakpoints):

    • 你有没有遇到过一个循环执行几千次,但你只关心某个特定条件下的迭代?普通断点会让你点到手软。
    • 右键点击断点,选择“Edit Breakpoint”,然后输入一个Python表达式。只有当这个表达式评估为
      True
      登录后复制
      时,断点才会触发。比如,
      i == 100
      登录后复制
      或者
      my_variable is None
      登录后复制
      。这简直是调试大数据量或复杂逻辑时的救星。
  2. 日志点 (Logpoints):

    • 有时候你不想暂停程序,只想在某个点打印一些变量值,但又不想改动代码加
      print()
      登录后复制
    • 右键点击断点,选择“Add Logpoint”。输入一个字符串,里面可以包含用大括号包起来的Python表达式,比如
      Value of x: {x}, y: {y}
      登录后复制
      。程序执行到这里时,它会在调试控制台打印这条信息,但不会暂停执行。这比频繁地添加和删除
      print
      登录后复制
      语句优雅多了。
  3. 变量观察 (Watch Expressions):

    • 在调试过程中,左侧的“变量”面板会显示当前作用域内的所有变量。但如果你有很多变量,或者只想关注某个表达式的值,比如
      len(my_list)
      登录后复制
      ,那么“监视”面板就派上用场了。
    • 在“监视”面板中点击加号,输入你想观察的变量名或表达式。它会实时更新这些值,即使它们不在当前作用域的直接显示列表中。
  4. 修改变量值 (Changing Variable Values):

    • 调试时发现某个变量值不对,想临时改一下看看后续逻辑?在“变量”面板中,你可以直接双击一个变量的值,然后输入新值并回车。这能让你在不重启程序的情况下,快速测试不同的输入或状态。
  5. 自定义

    launch.json
    登录后复制
    :深入调试配置

    • 当你需要更精细的控制,比如传递命令行参数、设置环境变量、或者调试特定的模块时,
      launch.json
      登录后复制
      是你的好朋友。
    • 点击调试面板顶部的齿轮图标,选择“Python File”,VSCode会为你生成一个
      launch.json
      登录后复制
      文件。你可以添加多个配置(
      configurations
      登录后复制
      数组),每个配置都有自己的
      name
      登录后复制
      type
      登录后复制
      request
      登录后复制
      launch
      登录后复制
      用于启动,
      attach
      登录后复制
      用于附加到已运行进程)、
      program
      登录后复制
      (要运行的脚本)、
      args
      登录后复制
      (命令行参数)、
      cwd
      登录后复制
      (工作目录)、
      env
      登录后复制
      (环境变量)等。
    • 例如,调试一个需要特定参数的脚本:
      {
          "name": "Run Script with Args",
          "type": "python",
          "request": "launch",
          "program": "${file}", // 当前打开的文件
          "args": ["--input", "data.txt", "--output", "result.csv"],
          "console": "integratedTerminal"
      }
      登录后复制
    • 再比如,调试一个web应用,需要设置环境变量:
      {
          "name": "Debug Flask App",
          "type": "python",
          "request": "launch",
          "module": "flask",
          "env": {
              "FLASK_APP": "app.py",
              "FLASK_ENV": "development"
          },
          "args": ["run", "--no-debugger", "--no-reloader"],
          "jinja": true,
          "console": "integratedTerminal"
      }
      登录后复制
    • 通过
      launch.json
      登录后复制
      ,你可以为不同的场景创建不同的调试配置,避免每次调试都手动设置。
  6. 远程调试 (Remote Debugging):

    • 如果你的Python代码运行在远程服务器、Docker容器或WSL中,你仍然可以使用VSCode进行调试。这通常涉及到在远程环境安装
      debugpy
      登录后复制
      库,并在
      launch.json
      登录后复制
      中配置一个
      attach
      登录后复制
      类型的调试配置。
    • 例如,在远程机器上运行
      python -m debugpy --listen 5678 --wait-for-client your_script.py
      登录后复制
      ,然后在VSCode中配置:
      {
          "name": "Python: Remote Attach",
          "type": "python",
          "request": "attach",
          "port": 5678,
          "host": "localhost" // 或者远程服务器的IP
      }
      登录后复制
    • 这能让你在本地VSCode享受完整的调试体验,仿佛代码就在本地运行一样。

运行Python脚本时,常见的错误和解决方案是什么?

在VSCode里跑Python,虽然大多数时候都很顺滑,但总会遇到那么几个让你挠头的错误。这些错误往往不是VSCode本身的问题,而是环境、路径或代码逻辑上的疏忽。我个人就没少踩这些坑,所以总结一些常见的错误和对应的解决方案,希望能帮你少走弯路。

  1. ModuleNotFoundError: No module named 'xxx'
    登录后复制

    • 问题描述: 这是最常见的错误之一,意味着Python解释器找不到你代码中
      import
      登录后复制
      的某个模块或包。
    • 解决方案:
      • 检查依赖是否安装: 你是不是忘了
        pip install xxx
        登录后复制
        ?或者你的项目依赖文件
        requirements.txt
        登录后复制
        里有,但你没运行
        pip install -r requirements.txt
        登录后复制
      • 解释器选择是否正确: 确保VSCode当前使用的Python解释器是你安装了这些依赖的那个。比如,你可能在全局Python里装了
        requests
        登录后复制
        ,但VSCode却在用一个没有
        requests
        登录后复制
        的虚拟环境。参考上面“如何确保VSCode正确识别我的Python环境?”部分。
      • sys.path
        登录后复制
        问题:
        有时候是因为Python找不到你的模块文件。确保你的模块文件在Python的搜索路径中。如果你的脚本需要导入同目录下的其他模块,通常是没问题的。但如果是子目录或者其他地方,你可能需要调整
        PYTHONPATH
        登录后复制
        环境变量,或者确保你的项目结构符合Python的包规范。
  2. SyntaxError: invalid syntax
    登录后复制
    IndentationError: expected an indented block
    登录后复制

    • 问题描述: Python对语法和缩进要求非常严格。
      SyntaxError
      登录后复制
      通常是写错了关键字、括号不匹配等;
      IndentationError
      登录后复制
      则是因为缩进不一致(比如混用了空格和Tab,或者缩进层级不对)。
    • 解决方案:
      • Linter提示: VSCode的Python扩展集成了Pylint、Flake8等Linter工具。它们会在你写代码的时候就标出这些语法错误,通常红色的波浪线或下划线很显眼。注意看这些提示。
      • 仔细检查代码: 尤其是在复制粘贴代码后,很容易引入隐藏的字符或错误的缩进。VSCode可以帮助你显示空白字符(
        Ctrl+Shift+P
        登录后复制
        -> “Toggle Render Whitespace”)。
      • 统一缩进: 在VSCode底部状态栏,你可以看到当前文件的缩进方式(比如“Spaces: 4”)。确保整个项目都使用统一的缩进方式。
  3. FileNotFoundError: [Errno 2] No such file or directory: 'xxx.txt'
    登录后复制

    • 问题描述: 你的Python脚本尝试打开或访问一个文件,但系统找不到这个文件。
    • 解决方案:
      • 相对路径与绝对路径: 当你用相对路径(比如
        data.txt
        登录后复制
        )访问文件时,Python会从当前工作目录开始查找。
        • 确认当前工作目录: 在脚本中打印
          import os; print(os.getcwd())
          登录后复制
          来查看程序运行时认为的当前工作目录是哪里。
        • 调整工作目录: 如果你的脚本在
          /project/src/main.py
          登录后复制
          ,而数据文件在
          /project/data/data.txt
          登录后复制
          ,那么直接在
          main.py
          登录后复制
          里写
          open('data/data.txt')
          登录后复制
          可能就会出错,因为相对路径是相对于
          main.py
          登录后复制
          所在的目录。你可以:
          • 将VSCode的终端工作目录切换到
            /project
            登录后复制
          • launch.json
            登录后复制
            中设置
            cwd
            登录后复制
            字段,比如
            "cwd": "${workspaceFolder}"
            登录后复制
          • 使用
            os.path.join(os.path.dirname(__file__), '..', 'data', 'data.txt')
            登录后复制
            来构建相对于脚本文件本身的路径。
      • 文件路径拼写: 检查文件名和路径是否完全正确,包括大小写。
  4. PermissionError: [Errno 13] Permission denied: 'xxx.txt'
    登录后复制

    • 问题描述: 你的Python脚本没有权限读取或写入某个文件或目录。
    • 解决方案:
      • 检查文件/目录权限:操作系统层面,确保你的用户账户对目标文件或目录有读写权限。在Linux/macOS上,可以使用
        ls -l
        登录后复制
        chmod
        登录后复制
        命令;在Windows上,右键文件/文件夹 -> 属性 -> 安全。
      • 避免在系统关键目录操作: 尽量不要尝试在系统盘根目录、程序文件目录等受保护的区域进行文件操作。
      • 临时解决方案(不推荐长期): 在Windows上,有时以管理员身份运行VSCode可以绕过权限问题,但这通常表明你的程序设计或文件存放位置有问题,不是一个好的长期方案。
  5. 解释器未找到或VSCode无法启动Python进程

    • 问题描述: VSCode报告无法找到Python解释器,或者在尝试运行/调试时报错说无法启动Python进程。
    • 解决方案:
      • Python是否正确安装并添加到PATH: 确保Python本身已经正确安装,并且其可执行文件(
        python.exe
        登录后复制
        python3
        登录后复制
        )的路径在系统的环境变量PATH中。
      • VSCode中重新选择解释器: 即使你之前选择过,有时环境变动后,VSCode可能会“忘记”。重新通过
        Ctrl+Shift+P
        登录后复制
        -> “Python: Select Interpreter”来选择一次。
      • 重启VSCode: 有时候,简单的重启可以解决一些VSCode内部状态同步的问题。
      • 检查VSCode日志: 可以在“Help”菜单中找到“Toggle Developer Tools”,在Console里查看是否有更详细的错误信息。

这些错误虽然烦人,但大多数都有明确的解决方案。关键是理解错误信息背后的含义,并系统性地排查。一个良好的开发习惯,比如使用虚拟环境、定期检查依赖、注意文件路径,可以大大减少这些问题的发生。

以上就是VSCode怎么运行Python脚本_VSCode执行和调试Python代码的方法教程的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号