VS代码中的Python入门
在本教程中,您将使用Python 3在Visual Studio Code中创建最简单的Python“Hello World”应用程序。 通过使用Python扩展,您可以将VS Code变成一个非常轻量级的Python IDE(您可以找到PyCharm的高效替代品)。
先决条件:
要成功完成本教程,您必须执行以下操作:
1、为vs code 安装python扩展
2、安装一个python版本
- (所有操作系统)从python.org下载; 通常使用页面上首先出现的Download Python 3.7.0按钮(或任何最新版本)。
3、在Windows上,确保Python解释器的位置包含在PATH环境变量中。 您可以通过在命令提示符下运行path
来检查这一点。 如果未包含Python解释器的文件夹,请打开Windows设置,搜索“环境”,选择编辑帐户的环境变量 ,然后编辑Path变量以包含该文件夹。
在项目(工作区)文件夹中启动VS Code
在命令提示符或终端上,创建一个名为“hello”的空文件夹,导航到该文件夹,然后输入以下命令打开该文件夹( .
)中的VS Code( code
):
mkdir hello cd hello code .
通过在文件夹中启动VS Code,该文件夹将成为您的“工作区”。 VS Code在.vscode/settings.json
存储特定于该工作空间的.vscode/settings.json
,这些设置与全局存储的用户设置分开。
选择一个Python解释器
Python是一种解释型语言,为了运行Python代码并获取Python IntelliSense,您必须告诉VS Code使用哪个解释器。
在VS Code中,通过打开命令选项板 ( Ctrl+Shift+P )选择Python 3解释器,开始键入Python:选择Interpreter命令进行搜索,然后选择命令。 如果可用,您还可以使用状态栏上的“ 选择Python环境”选项(它可能已经显示了选定的解释器):
该命令显示VS Code可自动查找的可用解释器列表。 如果没有看到所需的解释器,请参阅配置Python环境。
选择解释器会将工作空间设置中的python.pythonPath
值设置为解释器的路径。 要查看设置,请选择文件> 首选项 > 设置 ( 代码 > 首选项 > macOS上的设置 ),然后选择工作区设置选项卡。
注意 :如果选择没有打开工作区文件夹的解释器,VS代码会在用户设置中设置
python.pythonPath
,这通常会为VS代码设置默认解释器。 用户设置确保您始终拥有Python项目的默认解释器。 工作区设置允许您覆盖用户设置。
创建一个Python Hello World源代码文件
从文件资源管理器工具栏中,按下hello
文件夹上的“新建文件”按钮:
将文件命名为hello.py
,它将自动在编辑器中打开:
通过使用.py
文件扩展名,VS Code将此文件解释为Python,并使用Python扩展和所选解释器评估内容。
接下来,如果使用Python 3,请开始输入以下源代码:
msg = "Hello World" print(msg)
当您开始键入print
,请注意IntelliSense如何显示自动完成选项。
IntelliSense和自动完成适用于标准Python模块以及您已安装到所选Python解释器环境中的其他软件包。 它还为对象类型可用的方法提供了完成。 例如,因为msg
变量包含字符串,所以当您键入msg.
时,IntelliSense会提供字符串方法msg.
:
您可以随意尝试使用IntelliSense,但随后还原更改,以便只有msg
变量和print
调用,并保存文件( Ctrl+S )。
有关编辑,格式化和重构的完整详细信息,请参阅编辑代码 。 Python扩展还完全支持Linting 。
运行Hello World
使用Python运行hello.py
很简单。 在编辑器中单击鼠标右键,然后选择“在终端中运行Python文件” (自动保存文件):
该命令打开一个终端面板,在其中自动**Python解释器,然后运行python3 hello.py
(macOS / Linux)或python hello.py
(Windows):
在VS Code中可以运行Python的另外两种方法:
- 选择一行或多行,然后按Shift + Enter或右键单击并选择在Python终端中运行选择/行 。 此命令非常便于测试文件的一部分。
- 使用Python:Start REPL命令打开当前所选Python解释器的REPL终端。 然后,在REPL中,您可以一次输入和运行一行代码。
配置并运行调试器
现在让我们尝试调试我们的简单Hello World程序。
首先,通过将光标放在print
调用上并按F9 ,在hello.py
的第2行设置断点。 或者,只需点击编号左边的排水沟旁边的排水沟即可。 排水沟中出现一个红色圆圈。
接下来,选择侧栏中的Debug View:
然后选择调试工具栏上的设置图标(或使用Debug > Open configurations菜单命令):
片刻之后,该命令会创建一个launch.json
文件,其中包含许多配置,这些配置显示在配置下拉列表中:
注意 :VS Code将JSON文件用于其所有各种配置; launch.json
是包含调试配置的文件的标准名称。
调试配置中详细说明了这些不同的配置 ; 现在,只需选择Python:当前文件(Integrated Terminal) ,这是使用当前选择的Python解释器运行编辑器中显示的当前文件的配置。
要在程序启动时自动停止第一行的调试器,请在"stopOnEntry": true
中为“Python:Current File”配置添加"stopOnEntry": true
设置,以便整个配置如下所示:
{ " name ": "Python: Current File (Integrated Terminal)" , " type ": "python" , " request ": "launch" , " program ": "${file}" , " console ": "integratedTerminal" , " stopOnEntry ": true },
提示:如果需要指定包含要用于调试的解释器的确切文件夹,
pythonPath
在配置中包含pythonPath
的条目,例如"pythonPath": "${workspaceFolder}"
或"pythonPath": "${workspaceFolder}/.venv"
。
保存launch.json
,在编辑器中切换到hello.py
,然后通过选择Debug工具栏中的绿色箭头或按F5运行调试器。 由于stopOnEntry
设置为true,因此调试器会在文件的第一行停止。 当前行在左边距中用黄色箭头表示。 如果此时检查“ 局部变量”窗口,则会看到只定义了自动dunder变量:
顶部显示一个调试工具栏,其中包含从左到右的以下命令:继续( F5 ),跳过( F10 ),步入( F11),退出( Shift+F11 ),重启( Ctrl+Shift+F5 ),然后停止( Shift+F5 )。
状态栏还会更改颜色(许多主题中为橙色)以指示调试模式。 Python调试控制台也会自动出现在右下方面板中,以显示与程序输出一起运行的命令。
要继续运行程序,请在调试工具栏上选择继续命令( F5 )。 调试器将程序运行到下一个断点。 现在定义的msg
变量显示在“ 本地”窗格中
您还可以在调试控制台中使用变量(如果您没有看到它,请在VS Code的右下方区域选择Debug Console,或从...菜单中选择它。)然后尝试输入以下行,一个一,在控制台底部的>提示符下:
msg msg.capitalize() msg.split()
再次选择绿色箭头以运行程序完成。 如果切换回它,则“ Python Hello Console ”中会出现“Hello World”,一旦程序完成,VS Code将退出调试模式。
如果重新启动调试器,请记住在配置中设置stopOnEntry
,以便在运行任何代码之前调试器停止。 要一直运行到第一个断点,请从配置中删除该条目。
要在程序完成之前停止运行程序,请使用调试工具栏上的红色方块停止按钮( Shift+F5 ),或使用Debug> Stop debugging菜单命令。
有关完整的详细信息,请参阅调试配置 ,其中包括有关如何使用特定Python解释器进行调试的详细信息。
提示:使用Logpoints而不是print语句 :开发人员经常使用print语句丢弃源代码,以快速检查变量,而无需逐步调试调试器中的每行代码。 在VS Code中,您可以改为使用Logpoints 。 Logpoint就像一个断点,除了它将消息记录到控制台并且不会停止程序。 有关更多信息,请参阅主VS Code调试文章中的Logpoints 。
故障排除
如果由于某种原因VS Code不为您生成launch.json
,请在项目文件夹中创建.vscode/launch.json
文件(如果需要,创建.vscode
文件夹),然后将以下内容粘贴到launch.json
:
{ " version ": "0.2.0" , " configurations ": [ { " name ": "Python: Current File (Integrated Terminal)" , " type ": "python" , " request ": "launch" , " program ": "${file}" , " console ": "integratedTerminal" }, ] }
如果你看到如下所示的“SyntaxError:invalid syntax”,你试图在launch.json
当前在编辑器中显示时启动调试器,这不是像hello.py
这样的Python代码:
// Use IntelliSense to learn about possible attributes. ^ SyntaxError: invalid syntax
选择hello.py
然后重试。 或者,通过在configuration
数组中的launch.json
添加以下行,专门为hello.py
文件创建调试配置。 然后在调试器下拉列表中选择此配置并再次启动调试器。
{ " name ": "Python: hello.py" , " type ": "python" , " request ": "launch" , " program ": "${workspaceFolder}/hello.py" , " console ": "integratedTerminal" },
安装和使用包
现在让我们举一个更有趣的例子。 在Python中,包是通过PyPI获取任意数量的有用代码库的方式。 对于此示例,您可以使用matplotlib
和numpy
包来创建与数据科学相同的图形绘图。 (请注意,matplotlib在Windows子系统Linux中运行时无法显示图形,因为它缺少必要的UI支持。)
返回Explorer视图(左侧最顶部的图标,显示文件),创建一个名为standardplot.py
的新文件,并粘贴以下源代码:
import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np x = np.linspace( 0 , 20 , 100 ) # Create a list of evenly-spaced numbers over the range plt.plot(x, np.sin(x)) # Plot the sine of each x point plt.show() # Display the plot
提示 :如果您手动输入上述代码,您可能会发现当您在行尾按Enter键时,自动完成会更改
as
关键字后面的名称。 要避免这种情况,请键入空格,然后按Enter键。
接下来,尝试使用“Python:当前文件”配置在调试器中运行该文件,如上一节中所述。 (如果仍然有"stopOnEntry": true
在该配置中为"stopOnEntry": true
,则需要再次选择run命令才能继续。)
除非您使用Anaconda发行版或之前已安装matplotlib
包,否则您应该看到消息“ModuleNotFoundError:No module named'matplotlib'”。 此类消息表明您的系统中没有所需的软件包。
要安装matplotlib
软件包(它还将numpy
安装为依赖项),请停止调试器并从命令选项板运行终端:创建新的集成终端 ( Ctrl+Shift+` ))。 此命令将打开所选解释器的命令提示符。 然后根据您的操作系统输入以下命令(如果Python解释器安装在文件系统的受保护区域,则命令可能需要提升):
注意 :如果您无法安装软件包或遇到其他问题,请在GitHub上提出问题,以便我们帮助您进行调查。
# Don't use with Anaconda distributions because they include matplotlib already. # macOS sudo python3 -m pip install matplotlib # Windows (may require elevation) py - 3 -m pip install matplotlib # Linux (Debian) sudo apt-get install python3-tk python -m pip install matplotlib
现在重新运行程序(带或不带调试器),片刻之后会出现一个带有输出的绘图窗口: