一、coding


1、选择一个Python解释器

通过命令选项板(⇧⌘P),键入Python:Select Interpreter命令,然后选择一个解释器。

成功后左下角出现:

2、运行代码

二、重构


1、提取变量 / 方法

2、整理和排序 imports

三、formatting & linter


为什么要把 formatting 和 linter 放在一起说,两个其实是不同的东西(虽然通常一起协作)。因为市面上的工具有的是单独的,有时候是两者兼有,网上也没有一篇真正梳理的比较好的文章。我也就懒得分了,姑且直接以 集成进 vscode 为使用场景来分别介绍这两种。

1、formatting - 支持

vscode 支持 autopep8(默认),blackyapf

(1)指定
"python.formatting.provider": "autopep8"

默认的 autopep8 无需安装,但是如果要用 black 或 yapf,则需要 pip install 它们。

(2)配置
# 形如 "python.formatting.[name]Args": ["--line-length", "100"],譬如:

"python.formatting.blackArgs": ["--line-length", "100"]

2、formatting - 推荐 black

(1)理由

在之前,我写过一篇 《VSCode 使用 ESLint + Prettier 来统一 JS 代码》,本来想让 python 跟 javascript 保持统一都用 Prettier,但很可惜 Prettier 不支持 python,但是 Prettier 官方推荐了用 Black

(2)介绍

Black是facebook提供的一个python formatter工具。

black 号称不妥协,为什么呢?因为它检测到不符合规范的代码风格直接就帮你全部格式化好,根本不需要你确定,直接替你做好决定。且最大程度地保证格式化的最终结果一致。

black 的名字来源于当年福特的一句话:

Any customer can have a car painted any color that he wants so long as it is black.

Black 是 PEP8 的严格子集。

拓展:什么是 PEP8 ?

为了帮助开发者统一代码风格,Python 社区提出了 PEP8 代码编码风格。

Python 官方同时推出了一个检查代码风格是否符合 PEP8 的工具,名字也叫 pep8,后来被重命名为了 pycodestyle

(3)地址

官网:https://black.readthedocs.io/en/stable

在线体验:https://black.now.sh/?version=stable

(4)使用

参考上文 “formatting - 支持”

Black 依赖于 Python 3.6+,但通过其他办法也可以格式化用 Python 2 编写的代码。

配置就用默认配置。

(5)CLI 使用
# 对文件
$ black my_file.py # 对目录
$ black my_package/
(6)用在 持续集成

待写

(7)用在 Git pre-commit hook

待写

3、linter - 支持

pylint默认的外,vscode 还支持flake8mypypydocstylePep8 (pycodestyle) prospectorpylamabandit

(1)指定
# 形如 "python.linting.[name]Enabled": true,譬如:

"python.linting.flake8Enabled": true

默认的 autopep8 无需安装,但是如果要用 black 或 yapf,则需要 pip install 它们。

(2)配置
# 形如 "python.linting.[name]Args": true,譬如:

"python.linting.flake8Args": ["--ignore=E501,E722,W503"]

4、linter - 推荐 flake8

(1)理由

google 了一圈发现没有啥好文章分析到底哪个 python linter 好,姑且以此帖 大家在自己的 Python 项目中倾向使用哪个 Linter? 为参考,暂且选定 flake8

(2)介绍

Flake8 是由 Python 官方发布的一款辅助检测 Python 代码是否规范的工具,相对于目前热度比较高的 Pylint 来说,Flake8 检查规则灵活,支持集成额外插件,扩展性强。

Flake8 是对下面三个工具的封装:

  • PyFlakes:静态检查 Python 代码逻辑错误的工具。

  • Pep8: 静态检查 PEP8 编码风格的工具。

  • NedBatchelder’s McCabe :静态分析 Python 代码复杂度的工具。

不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。

(3)地址

官方文档:https://pypi.python.org/pypi/flake8/

(4)使用

参考上文 “linter - 支持”

参考资料

Linting Python in Visual Studio Code

使用vscode开发Python程序:代码静态检查工具pylint及代码格式化工具yapf的配置使用

四、整合 jupyter


备注:jupyter 与 vscode 整合的并不好,最致命的问题是:

比如有 A、B、C 三个 cell,依次执行。Python Interactive 里正常显示了执行结果:A result > B result > C result

现在我修改了 B cell 的代码,重新执行 B cell ,执行结果:A result > B result > C result > B result

但是这不是我想要的,我想要的结果是 :A result > B result (new) > C result , 即替换原有的结果。

关于这个问题,我提交到了官方的 github issue :https://github.com/Microsoft/vscode/issues/67546,目前暂不考虑在 VSCode 里使用 jupyter

1、导入

导入jupyter ,会从 .ipynb转成 .py文件。

2、编写 cell

(1)普通 cell

#%%

(2)markdown cell

#%% [markdown]

注意,要用注释的方式写 markdown cell

正确
# # eric do something
# *哈哈哈哈* 错误
# eric do something
*哈哈哈哈*

3、导出

五、单元测试


六、使用docker容器进行部署


用 VSCode 编写 python的更多相关文章

  1. vscode 编写python如何禁止 flake8 提示 line too long

    使用vscode编写python还是挺舒服的,但是如果给vscode安装了语法校验插件,例如flake8,会常常提示一些非常苛刻的语法问题,其中最让人不能忍受的就是line to long. 一行仅能 ...

  2. vscode编写python,引用本地py文件出现红色波浪线

    前言 引用本地py文件出现红色波浪线,如下图: 原因 经过查询得知,vscode中的python插件默认使用的是pylint来做代码检查,因此需要对pylint做一些配置 解决方案 在setting. ...

  3. vscode 编写Python走过的坑

    1,在使用vscode 中import turtle 这个模块, 再调用t = turtle.Pen(),始终提示无法找到turtle模块 2.可是使用terminal 中调用turtle模块,没有问 ...

  4. vscode配置python之settings.json 智能提示

    vscode编写Python的智能提示,搞了好久,参考了各种网上配置,如下,备份方便自己查找. { "workbench.iconTheme": "material-ic ...

  5. windows下使用vscode编写运行以及调试Python

    更新于2018年10月: 首先去python官网下载python3  地址:https://www.python.org/downloads/windows/ 下载好后直接安装 记得勾选添加环境变量 ...

  6. VsCode中编写python环境配置

    1. VsCode中编写python环境配置 1.1. 前言 有过开发经验都知道idea一系列的软件虽然功能比较多,但比较容易卡,电脑不好还真容易上火,这里我想要入门python,还是选了款vscod ...

  7. VSCode的Python扩展下程序运行的几种方式与环境变量管理

    在VSCode中编写Python程序时,由于有些地方要使用环境变量,但是发现设置的环境变量有时不起作用,花了点时间研究了一下,过程不表,直接说结论. 首先,环境变量的设置,Python扩展中有三种方式 ...

  8. 在ubuntu下使用visual studio code编写python

    感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可. 这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一 ...

  9. vscode编写插件

    vscode编写插件详细过程 前言 之前编写了一个vscode插件用vscode写博客和发布,然后有园友要求写一篇来介绍如何开发一个vscode扩展插件,或者说介绍开发这个插件的过程.然而文章还没有写 ...

随机推荐

  1. css伪类及伪元素用法

    注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的读者可以自己尝试: :active  大致效果为用鼠标 ...

  2. tomcat中如何禁止列目录下的文件

    tomcat中如何禁止列目录下的文件在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下: <servlet> <servlet ...

  3. python 数据可视化 -- 生成可控的随机数据集合

    生成可控的随机数据集合 使用 numpy.random 模块 numpy.random.random(size=None)  返回 [0.0, 1.0) 区间的随机 floats, 默认返回一个 fl ...

  4. GUI学习之八——QToolButton的学习总结

    QToolButton提供一个快速的访问按钮,通常在工具栏内使用,一般不显示文本标签而显示图标. 一.按钮的样式风格设置 可以按照下面的风格对按钮进行样式设置 从左到右依次是仅显示图标.仅显示文字.图 ...

  5. PLSQL账号密码

    Product Code:4t46t6vydkvsxekkvf3fjnpzy5wbuhphqzserial Number:601769 password:xs374ca

  6. hw3

    1. 2.将MAXPRIMES的值设为4,t2会发生越界错误,t1不会. 3.令n = 1,此时不满足while语句的判断条件,不执行while循环. 4. 点覆盖:{1,2,3,4,5,6,7,5, ...

  7. linux sort排序命令的高级用法(按多个列值进行排列)

    http://www.jquerycn.cn/a_9076 在linux中,使用sort按行进行排序是很简单的.不过有时,生活总是爱抛给你一个一个的问题.如果使用sort按多个列值排列,同时使用tab ...

  8. 《Linux就该这么学》第十九天课程

    今天对“Linux就该这么学”课程做个收尾 最后一张使用LNMP架构部署动态网站环境 第1步:下载及解压源码包文件.为了方便在网络中传输,源码包文件通常会在归档后使用gzip或bzip2等格式进行压缩 ...

  9. DarwinStreamServer 6.0.3 rtsp服务器搭建

    14:46:34 环境:Centos 7.3 编译安装 1.下载Darwin源码 http://dss.macosforge.org/downloads/DarwinStreamingSrvr6.0. ...

  10. LOJ-10094(强连通分量)

    题目链接:传送门 思路: 先缩点,然后统计入度为0的点即可. #include<iostream> #include<cstdio> #include<cstring&g ...