在VS Code中进行Python开发(vs code pycharm)
off999 2024-10-23 12:42 12 浏览 0 评论
目录表
安装和配置Visual Studio Code用于Python开发
o 用于Python开发的扩展
o Visual StudioCode配置文件
启动一个新的Python程序
o输入Python代码
o运行Python代码
o Python Linting支持
编辑现有Python项目
测试支持
调试支持
git集成
结论
程序员可以使用的最酷的代码编辑器之一——Visual Studio Code[1]——是一个开源的、可扩展的、轻量级的编辑器,它可以在所有平台上使用。正是这些特性使得Microsoft[2]的Visual Studio Code非常受欢迎,并且是一个很好的Python开发平台。
在本文中,你将了解在Visual Studio Code中进行Python开发,包括怎样:
安装Visual Studio Code
发现并安装使Python开发变得容易的扩展
编写一个简单的Python应用程序
学习如何在VS Code中运行和调试现有Python程序
将Visual Studio Code连接到Git和GitHub,与世界分享你的代码
我们假设你熟悉Python开发,并且已经在系统上安装了某种形式的Python (Python 2.7、Python 3.6/3.7、Anaconda或其他)。确保你的Ubuntu和Windows的屏幕截图和演示程序都可用。由于Visual Studio Code可以运行在所有主要平台上,你可能会看到略有不同的UI元素,可能需要修改某些命令。
安装并配置Visual Studio Code用于Python开发
在任何平台上安装Visual Studio Code都是非常容易[3]的。Windows[4]、Mac[5]和Linux[6]都有完整的安装教程,编辑器每月更新一次,提供新特性和bug修复。你可以在Visual Studio Code网站[7]上找到所有信息:
你可能会疑惑,Visual Studio Code(简称VS Code)除了与其基于windows的大型同名软件Visual Studio[8]名字相同之外,几乎没有其他相同之处。
Visual Studio Code除具有对多种语言的内置支持之外,还具有对其他语言丰富的生态系统支持的扩展模型。VS Code每月更新一次,你可以在Microsoft Python博客[9]上了解最新情况。微软甚至公开VS Code GitHub repo[10]源来允许任何人克隆和贡献代码。(Cue the PR flood.)
VS Code用户界面[11]有很好的文档说明,所以我就不在这里赘述
用于Python开发的扩展
如上所述,VS Code通过良好文档化的扩展模型[12]支持多种编程语言的开发。Python扩展[13]允许我们可以在Visual Studio Code中进行Python开发,它具有以下特性:
支持Python 3.4及以上版本,以及Python 2.7
使用IntelliSense[14](智能感知)补全代码
Linting(代码检查)[15]
调试支持[16]
代码片段[17]
单元测试支持[18]
conda和虚拟环境[19]的自动使用
在Jupyter环境[20]和Jupyter笔记本[21]中进行代码编辑
Visual Studio Code扩展不仅包括编程语言功能:
Keymaps[22]让已经熟悉Atom、Sublime Text[23]、Emacs[24]、Vim[25]、PyCharm或其他环境的用户感到宾至如归。
Themes[26]允许自定义UI,无论你喜欢在浅色、深色或其他更丰富多彩的环境中编写代码。
Language packs[27]提供本地化体验。
下面是一些我发现的有用的扩展和设置:
GitLens[28]在你的编辑窗口中提供了大量有用的Git特性,包括blame annotations 和repository exploration特性。
自动保存是很容易开启的,你可以从菜单选择File,Auto Save来开启。默认延迟时间是1000毫秒,这也是可配置[29]的。
Settings Sync[30] 允许你使用GitHub同步不同安装环境的VS Code设置。如果你在不同的机器上工作,这有助于保持跨机器环境的一致性。
Docker[31]让你可以快速、轻松地使用Docker进行工作(它帮助作者生成了Dockerfile和Docker –compose.yml文件),打包和部署项目,甚至为你的项目生成合适的Docker文件。
当然,在使用VS Code时,你会发现其他有用的扩展。请在评论区[32]分享你的发现和设置!
你可以通过单击活动栏上的Extensions图标来发现和安装新的扩展和主题。你可以使用关键字搜索扩展,以多种方式对结果进行排序,并快速轻松地安装扩展。对本文来说,通过在活动栏的Extensions项中输入python并点击Install来安装Python扩展:
你可以以相同的方式查找并安装上面提到的任何扩展。
Visual Studio Code配置文件
值得一提的是,Visual Studio Code可以通过user and workspace settings[33](用户和工作区设置)进行高度配置。
用户设置是跨所有Visual Studio Code实例的全局设置,而工作区设置是特定文件夹或项目工作区的本地设置。工作区设置为VS Code提供了极大的灵活性,在本文中我将始终调用工作区设置。工作区设置以.json文件的形式存储在名为.vscode的项目工作区本地文件夹中。
开始一个新的Python程序
让我们从一个新的Python程序开始探索Visual Studio Code中的Python开发。在VS Code中,按下∧Ctrl+N打开一个新文件。(也可以从菜单中选择File, New来打开)
注意:Visual Studio Code UI提供了命令面板[34],你可以在其中搜索和执行任何命令,而不需要离开键盘。使用∧Ctrl+Shift+P打开命令面板,输入File: New File,然后按Enter键打开一个新文件。
无论你如何打开一个新文件的,你都会看到一个VS Code窗口,它看起来类似于下面的图:
打开新文件之后,你就可以输入代码了。
输入Python代码
对于我们的测试代码,让我们快速编写Sieve of Eratosthenes[35] 项目(它查找所有小于给定数字的素数)。在刚刚打开的新选项卡中输入以下代码:
你会看到类似于这样的结果:
等等,发生了什么?为什么Visual Studio Code没有进行任何关键字高亮显示、自动格式化或其他有用的事情呢?它做了什么?
答案是,现在VS Code还不知道它处理的是哪种文件。这个缓冲区名为Untitled-1,在窗口的右下角查看,你会看到Plain Text 字样。
要激活Python扩展名,将文件(通过从菜单中选择File、Save、从命令面板中输入File: Save File,或者只使用∧Ctrl+S)保存为sieve.py。VS Code将看到.py扩展名,并正确地将文件解释为Python代码。现在你的窗口看起来应该是这样的:
这就好多了!VS Code自动将文件重新格式化为Python,你可以通过检查左下角的语言模式来验证这一点。
如果你安装了多个Python版本 (如Python 2.7、Python 3或者Anaconda)。你可以通过单击语言模式指示器或从命令面板中选择Python: Select Interpreter,来更改VS Code默认使用哪种Python解释器。VS Code默认支持使用pep8进行格式化[36],你也可以选择black或yapf。
现在我们来添加Sieve代码的其余部分。要查看IntelliSense是否在工作,直接输入这段代码,不能剪切和粘贴,你会看到如下所示:
下面是一个基本的Sieve of Eratosthenes的完整代码:
当你输入这段代码时,VS Code会自动缩进for和if语句下面的行,添加结束括号,并为你提供建议。这就是IntelliSense为你带来的力量。
运行Python代码
现在代码已经完成,你可以运行它了。不需要离开编辑器就可以做到这一点:Visual Studio Code可以直接在编辑器中运行这个程序。保存文件(使用∧Ctrl+S),然后在编辑器窗口右键单击,选择Run Python file in Terminal :
你应该会看到终端窗格出现在窗口的底部,并显示代码输出。
Python Linting支持
你在输入时可能会看到一个弹出窗口,提示无法使用linting。你可以从该弹出窗口中快速安装linting支持,它默认为PyLint。VS Code还支持其他linter。以下是撰写本文时可用的完整列表:
pylint
flake8
mypy
pydocstyle
pep8
prospector
pyllama
bandit
Python linting页面[37]有关于如何设置每个linter的完整详细信息。
注意:linter的选择是一个项目工作区设置,不是全局用户设置。
编辑现有Python项目
在Sieve of Eratosthenes示例中,你创建了一个Python文件。作为一个例子这很不错,但是很多时候,当你需要创建大型项目,并在很长的一段时间内要在它上面进行开发。一个典型的新项目工作流程可能是这样的:
创建一个文件夹来保存项目(其中可能包括一个新的GitHub项目)
切换到新文件夹
使用命令code file .py创建初始Python代码
在Python项目上使用Visual Studio Code (而不是单个Python文件)可以提供更多的功能,可以让VS Code发挥它的特长。我们来看看它是如何处理一个大型项目的。
在前几年的后期,当我还是一个很年轻的程序员时,我编写了一个计算器程序,它使用Edsger Dijkstra的调度场算法(shunting yard algorithm)[38]适配来解析用中缀表示法编写的等式。
为了演示Visual Studio Code以项目为中心的特性,我开始在Python中将调度场算法(shunting yard algorithm)重新创建为一个Python等式计算库[39]。要继续后续操作,请随意将它从repo克隆到本地。
在本地创建文件夹后,你可以在VS Code中快速打开整个文件夹。我喜欢的方法(如上所述)修改如下,因为我已经创建了文件夹和基本文件:
VS Code理解并将使用以这种方式打开时它读取到的任何virtualenv[40]、pipenv[41]或conda[42]环境。你甚至不需要一开始就启动虚拟环境!你甚至可以从用户界面打开文件夹,从菜单中使用 File,Open Folder 打开文件夹,或使用快捷键∧Ctrl+K、∧Ctrl+O从键盘打开文件夹,或者从命令面板使用File: Open Folder打开。
对于我的等式计算库项目,以下是我将看到的:
当Visual Studio Code打开文件夹时,它还会打开上次打开的文件。(这是可配置的)。你可以打开、编辑、运行和调试任何列出的文件。左侧活动栏中的Explorer视图提供文件夹中所有文件的视图,并显示当前选项卡集中有多少未保存的文件。
测试支持
VS Code可以自动识别在unittest框架、pytest或Nose框架中编写的现有Python测试[43](如果这些框架已经安装在当前环境中)。我在unittest中为等式计算库编写了一个单元测试[44],你可以在本例中使用它。
要运行现有的单元测试,可以在项目中的任何Python文件中右键单击并选择Run Current Unit Test File。系统会提示你指定测试框架、在项目中搜索测试的位置以及测试使用的文件名模式。
所有这些都会作为工作区设置保存为本地.vscode/settings.json文件,你也可以在此处进行修改。对于这个等式项目,你选择unittest、当前文件夹和*_test.py模式就好。
一旦设置好测试框架并且编辑器发现了测试,你可以在状态栏上单击Run Tests 并从命令面板中选择一个选项来运行所有的测试:
你甚至可以通过在VS Code中打开测试文件,单击状态栏上的Run Tests,并选择Run Unit Test Method…和要运行的特定测试来运行单个测试。这使得定位单个的测试失败和重新运行失败的测试变得非常简单,也是一个很棒的节省时间的方法!测试结果显示在Python Test Log下的Output 窗口中。
调试支持
虽然VS Code是一个代码编辑器,但是在VS Code中直接调试Python[45]也是可以的。VS Code提供了许多你所希望的好的代码调试器具有的特性,包括:
自动变量跟踪
监视表达式
断点
调用栈检查
你可以在活动栏的Debug 视图中看到它们:
调试器可以控制在内置终端或外部终端实例中运行Python应用程序。它也可以附加到已经运行的Python实例上,甚至可以调试Django[46]和Flask[47]应用程序。
在单个Python文件中调试代码与使用F5启动调试器一样简单。使用F10和F11可以分别跳出和进入函数,使用Shift+F5退出调试器。可以使用F9设置断点,也可以使用鼠标在编辑器窗口的左侧空白处单击来设置。
在开始调试更复杂的项目(包括Django或Flask应用程序)之前,你需要先进行设置,然后选择调试配置。设置调试配置相对简单。在Debug 视图中,选择Configuration下拉菜单,然后点击Add Configuration,并选择Python
:
Visual Studio Code将在当前文件夹下创建一个名为 .vscode/launch.json的调试配置文件,它允许你设置特定的Python配置[48]以及调试特定应用程序[49](如Django和Flask)的设置。
你甚至可以执行远程调试,以及调试Jinja和Django模板。关闭编辑器中的launch.json文件,然后从Configuration 下拉菜单中为你的应用程序选择合适的配置。
Git集成
VS Code内置了对源代码控制管理[50]的支持,并附带了对Git和GitHub的开箱即用支持。你可以在VS Code中安装对其他SCM的支持,并一起使用它们。可以从Source Control 视图中访问源代码管理:
如果你的项目文件夹包含一个.git文件夹,VS Code会自动打开Git/GitHub[51]的全部功能。以下是一些你可以完成的任务:
将文件提交[52]到Git
从远程repos[53]推送更改和提取更改
检查现有的或创建新的分支和标记[54]
查看并解决合并冲突[55]
查看不同[56]
所有这些功能都可以直接从VS Code用户界面中调用:
VS Code还能识别在编辑器之外所做的更改,并正确处理。
在VS Code中提交你最近的更改是一个相当简单的过程。在Source Control 视图中,修改后的文件显示为M标记,而未跟踪的新文件显示为U 标记。将鼠标悬停在文件上,然后单击加号(+),就可以看到你的更改。在视图顶部添加提交消息,然后单击复选框提交更改:
你还可以在VS Code中向GitHub推送本地提交。从“Source Control 视图”菜单中选择“Sync(同步)”,或者单击分支指示器旁边的状态栏[57]上的“Synchronize Changes (同步更改)”。
结论
Visual Studio Code是最酷的通用编辑器之一,也是Python开发的最佳候选。在本文中,你了解到:
如何在任何平台上安装VS Code
如何查找和安装扩展来支持Python特有的特性
VS Code如何让编写一个简单的Python应用程序变得更容易
如何在VS Code中运行和调试现有Python程序
如何在VS Code中使用Git和GitHub存储库
Visual Studio Code已经成为我开发Python和处理其他任务的默认编辑器,我希望你能给它一个机会,让它也成为你的编辑器。
如果你有任何问题或意见,请在下面的评论区留言。Visual Studio Code网站[58]上还有很多我们这里没有介绍到的信息。
作者在此感谢微软Visual Studio Code团队的Dan Taylor[59]为本文所花费的时间和提供的宝贵信息。
相关链接:
[1]——https://code.visualstudio.com/docs
[2]——https://azure.com/python
[3]——https://code.visualstudio.com/docs/setup/setup-overview
[4]——https://code.visualstudio.com/docs/setup/windows
[5]——https://code.visualstudio.com/docs/setup/mac
[6]——https://code.visualstudio.com/docs/setup/linux
(字数限制,其他链接未列出........)
英文原文:https://realpython.com/python-development-visual-studio-code/
译者:忧郁的红秋裤
相关推荐
- 软件测试|Python requests库的安装和使用指南
-
简介requests库是Python中一款流行的HTTP请求库,用于简化HTTP请求的发送和处理,也是我们在使用Python做接口自动化测试时,最常用的第三方库。本文将介绍如何安装和使用request...
- python3.8的数据可视化pyecharts库安装和经典作图,值得收藏
-
1.Deepin-linux下的python3.8安装pyecharts库(V1.0版本)1.1去github官网下载:https://github.com/pyecharts/pyecharts1...
- 我在安装Python库的时候一直出这个错误,尝试很多方法,怎么破?
-
大家好,我是皮皮。一、前言前几天在Python星耀群【我喜欢站在一号公路上】问了一个Python库安装的问题,一起来看看吧。下图是他的一个报错截图:二、实现过程这里【对不起果丹皮】提示到上图报错上面说...
- 自动化测试学习:使用python库Paramiko实现远程服务器上传和下载
-
前言测试过程中经常会遇到需要将本地的文件上传到远程服务器上,或者需要将服务器上的文件拉到本地进行操作,以前安静经常会用到xftp工具。今天安静介绍一种python库Paramiko,可以帮助我们通过代...
- Python 虚拟环境管理库 - poetry(python虚拟环境virtualenv)
-
简介Poetry是Python中的依赖管理和打包工具,它允许你声明项目所依赖的库,并为你管理它们。相比于Pipev,我觉得poetry更加清爽,显示更友好一些,虽然它的打包发布我们一般不使...
- pycharm(pip)安装 python 第三方库,时下载速度太慢咋办?
-
由于pip默认的官方软件源服务器在国外,所以速度慢,导致下载时间长,甚至下载会频繁中断,重试次数过多时会被拒绝。解决办法1:更换国内的pip软件源即可。pip指定软件源安装命令格式:pipinsta...
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
-
**本图文作品主要解决CMD或pycharm终端下载安装第三方库可能出错的问题**本作品介绍了8种安装方法,这里最全的python第三方库安装教程,简单易上手,满满干货!希望大家能愉快地写代码,而不要...
- python关于if语句的运用(python中如何用if语句)
-
感觉自己用的最笨的方式来解这道题...
- Python核心技术——循环和迭代(上)
-
这次,我们先来看看处理查找最大的数字问题上,普通人思维和工程师思维有什么不一样。例如:lst=[3,6,10,5,7,9,12]在lst列表中寻找最大的数字,你可能一眼能看出来,最大值为...
- 力扣刷题技巧篇|程序员萌新如何高效刷题
-
很多新手初刷力扣时,可能看过很多攻略,类似于按照类型来刷数组-链表-哈希表-字符串-栈与队列-树-回溯-贪心-动态规划-图论-高级数据结构之类的。可转念一想,即...
- “千万别学我!从月薪3000到3万,我靠这3个笨方法逆袭”
-
3年前,我还在为房租而忧心忡忡,那时月薪仅有3000元;如今,我的月收入3万!很多人都问我是如何做到的,其实关键就在于3个步骤。今天我毫无保留地分享给大家,哪怕你现在工资低、缺乏资源,照着做也能够实...
- 【独家攻略】Anaconda秒建PyTorch虚拟环境,告别踩坑,小白必看
-
目录一.Pytorch虚拟环境简介二.CUDA简介三.Conda配置Pytorch环境conda安装Pytorch环境conda下载安装pytorch包测试四.NVIDIA驱动安装五.conda指令一...
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
-
工作后在学习Python这条路上,踩过很多坑。今天给大家推荐9本自学Python,让大家避免踩坑。入门扫盲:让你不会从一开始就从入门到放弃1《看漫画学Python:有趣、有料、好玩、好用》2《Pyth...
- 整蛊大法传授于你,不要说是我告诉你的
-
大家好,我是白云。给大家整理一些恶搞代码,谨慎使用!小心没朋友。1.电脑死机打开无数个计算器,直到死机setwsh=createobject("wscript.shell")do...
- python 自学“笨办法”7-9章(笨办法学python3视频)
-
笨办法这本书,只强调一点,就是不断敲代码,从中增加肌肉记忆,并且理解和记住各种方法。第7章;是更多的打印,没错就是更多的打印第八章;打印,打印,这次的内容是fomat的使用与否f“{}{}”相同第九...
你 发表评论:
欢迎- 一周热门
-
-
python 3.8调用dll - Could not find module 错误的解决方法
-
加密Python源码方案 PyArmor(python项目源码加密)
-
Python3.8如何安装Numpy(python3.6安装numpy)
-
大学生机械制图搜题软件?7个受欢迎的搜题分享了
-
编写一个自动生成双色球号码的 Python 小脚本
-
免费男女身高在线计算器,身高计算公式
-
将python文件打包成exe程序,复制到每台电脑都可以运行
-
Python学习入门教程,字符串函数扩充详解
-
Python数据分析实战-使用replace方法模糊匹配替换某列的值
-
Python进度条显示方案(python2 进度条)
-
- 最近发表
-
- 软件测试|Python requests库的安装和使用指南
- python3.8的数据可视化pyecharts库安装和经典作图,值得收藏
- 我在安装Python库的时候一直出这个错误,尝试很多方法,怎么破?
- 自动化测试学习:使用python库Paramiko实现远程服务器上传和下载
- Python 虚拟环境管理库 - poetry(python虚拟环境virtualenv)
- pycharm(pip)安装 python 第三方库,时下载速度太慢咋办?
- 【Python第三方库安装】介绍8种情况,这里最全看这里就够了!
- python关于if语句的运用(python中如何用if语句)
- Python核心技术——循环和迭代(上)
- 力扣刷题技巧篇|程序员萌新如何高效刷题
- 标签列表
-
- python计时 (54)
- python安装路径 (54)
- python类型转换 (75)
- python进度条 (54)
- python的for循环 (56)
- python串口编程 (60)
- python写入txt (51)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python字典增加键值对 (53)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python qt (52)
- python人脸识别 (54)
- python斐波那契数列 (51)
- python多态 (60)
- python命令行参数 (53)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- centos7安装python (53)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)