VS Code怎么运行选定的Python文件或整个项目
python -m 或配置 launch.json 来避免导入路径与相对目录错乱。
一、运行前的必要环境准备
VS Code 本身是一个代码编辑器,执行 Python 依赖本地安装的 Python 解释器以及官方的 Python 扩展。在尝试运行任何文件之前,需要确认以下两项基本设置:
- 安装 Python 官方扩展:打开 VS Code 左侧活动栏的“扩展”(Extensions)面板(快捷键
Ctrl+Shift+X或Cmd+Shift+X),搜索并安装由 Microsoft 发布的Python扩展组件。 - 打开项目根文件夹:使用“文件” > “打开文件夹”(Open Folder),直接选中包含 Python 代码的顶层目录。VS Code 依赖当前打开的文件夹作为默认工作目录(Current Working Directory, CWD)。
- 选择对应的 Python 解释器:按下
Ctrl+Shift+P(macOS 为Cmd+Shift+P)调出命令面板,输入并执行Python: Select Interpreter。系统会列出已发现的全局 Python 环境、Conda 环境或项目内的虚拟环境(如.venv),点击选择你所需要的解释器。选择后,编辑器底部状态栏将常驻显示该环境信息。
二、运行选定的单个 Python 文件
当只需要调试或运行某一个特定的 .py 脚本(例如算法测试题、爬虫脚本或工具函数)时,操作非常直接。打开该文件并保持在编辑器当前窗口,可以通过以下三种方式运行:
1. 编辑器右上角的“运行”按钮
在编辑器窗口的右上角,可以看到一个类似三角形播放箭头的图标。点击该按钮旁的下拉箭头,选择 “Run Python File”(在终端中运行 Python 文件)。VS Code 会自动打开底部的集成终端,并以选定的 Python 解释器路径完整执行该文件。
2. 右键菜单命令
在代码编辑区域的任意空白位置点击鼠标右键,在弹出的右键菜单中找到并点击 “在终端中运行 Python 文件”(Run Python File in Terminal)。该操作与点击右上角按钮的效果完全一致。
3. 在集成终端中手动运行
通过快捷键 Ctrl+`(反引号)直接调出集成终端。如果当前终端已经在当前目录或项目根目录,输入:
python path/to/your_file.py
或者在 macOS / Linux 环境下使用:
python3 path/to/your_file.py
这种方式的优势在于可以自由追加启动参数,例如 python test.py --verbose --epoch 10。
三、运行包含多模块协作的整个项目
在实际项目开发中,通常包含主程序入口、配置文件、工具包及多个子模块。初学者常遇到的问题是:在子目录里直接点击运行单个文件,却报出 ModuleNotFoundError 或相对路径找不到文件。这是因为 Python 的模块检索机制与当前工作目录(CWD)直接相关。
1. 确定项目的主入口文件
规范的 Python 工程通常都会设立一个明确的程序入口点,常见的命名包括根目录下的 main.py、app.py、run.py 或者 manage.py(如 Django 项目)。
运行整个项目时,操作重点是无论你刚才在编辑哪一个内部子模块代码,最终触发运行的都应该是这个主入口文件。
2. 使用 python -m 模块化方式运行
如果项目没有单一的顶层 main.py,或者需要独立运行某个包内部的特定处理任务,切忌直接进入子文件夹执行。建议在 VS Code 集成终端保持处于工作区根目录,使用模块化参数 -m 运行:
# 位于项目根目录 my_project/
python -m src.subpkg.worker
这里的 -m 告诉 Python 将 src.subpkg.worker 作为模块载入执行,此时 Python 会自动将当前工作目录(即项目根目录)加入到 sys.path 中,模块内部所有绝对导入语句都能正常解析。
四、使用 launch.json 实现工程化运行与调试配置
每次手动在终端输入命令传参较为繁琐,且无法方便地设置断点。VS Code 提供了标准的运行与调试配置文件 .vscode/launch.json,可以将“运行单个选定文件”与“运行整个主项目”固化为菜单项。
1. 创建 launch.json 文件
- 点击左侧活动栏的“运行和调试”(Run and Debug)图标(快捷键
Ctrl+Shift+D或Cmd+Shift+D)。 - 点击上方的“创建 launch.json 文件”(create a launch.json file)。
- 环境类型选择“Python Debugger”,调试器模板选择“Python 文件”(Python File)。
VS Code 会在当前项目根目录创建 .vscode/launch.json 文件。
2. 同时支持“当前单文件”与“项目主入口”的配置示例
编辑 .vscode/launch.json,在 configurations 列表中添加两个相互独立的配置项:
{
"version": "0.2.0",
"configurations": [
{
"name": "Python: 运行当前打开的文件",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}"
},
{
"name": "Python: 启动项目主入口 (main.py)",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/main.py",
"console": "integratedTerminal",
"cwd": "${workspaceFolder}",
"args": ["--port", "8000"],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
}
]
}
${file}:指代当前在 VS Code 中处于打开且聚焦状态的 Python 单文件。${workspaceFolder}:指代当前 VS Code 窗口打开的根目录绝对路径。cwd:固定执行的工作目录为项目根目录,避免子脚本因为所在子目录不同而产生相对路径偏移。env.PYTHONPATH:显式将根目录加入 Python 搜索路径,确保任何子模块间的import均能顺畅寻址。
配置完成后,只需在左侧“运行和调试”界面的下拉列表中选择需要的配置,然后按下快捷键 F5(或点击绿色开始箭头),即可一键按规则运行或开始打断点调试。
五、交互式运行选定代码片段(REPL / Interactive)
除了整文件执行,进行数据分析、算法推导或调试特定逻辑段落时,往往希望只执行选中的几行代码,而无需从头重新执行耗时的初始化逻辑:
- 在编辑器中用鼠标高亮选中你想要执行的几行 Python 代码。
- 按下快捷键
Shift+Enter。 - VS Code 会自动打开 Python 交互式窗口(Interactive Window)或在终端中启动 Python REPL,并将选中的代码逐行发送执行,同时展示执行结果与变量状态。
如果未选中任何代码,直接按下 Shift+Enter,VS Code 会自动执行光标所在的当前行代码并将光标移至下一行。
六、运行方式选型与常见问题排查
排查两类最典型的运行报错
| 现象描述 | 根本原因 | 解决方法 |
|---|---|---|
ModuleNotFoundError: No module named 'xxx' |
执行时所在的当前目录未包含顶层包目录,或选择的 Python 解释器并非安装了该第三方依赖的环境。 | 1. 检查右下角解释器是否匹配了正确的虚拟环境。 2. 确保在项目根目录使用 python -m package.file 启动。3. 在 launch.json 中注入 "PYTHONPATH": "${workspaceFolder}"。 |
FileNotFoundError: [Errno 2] No such file or directory: './config.json' |
代码中使用了相对文件路径,但终端执行时的工作目录(CWD)并非项目根目录,导致路径拼接起点错位。 | 1. 在终端执行前先使用 pwd 或 cd 确认当前处在项目根目录。2. 在 launch.json 中显式声明 "cwd": "${workspaceFolder}"。3. 在代码中改用基于 Path(__file__).resolve().parent 的绝对基准定位。 |
掌握了上述单文件与项目级运行的区别与配置方法后,在 VS Code 中进行 Python 开发时就可以在单脚本验证、模块联调与工程化部署之间灵活切换,保证代码执行环境的稳定与规范。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









