惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Project Zero
Project Zero
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
S
SegmentFault 最新的问题
Blog — PlanetScale
Blog — PlanetScale
T
Tailwind CSS Blog
WordPress大学
WordPress大学
Engineering at Meta
Engineering at Meta
S
Schneier on Security
N
News and Events Feed by Topic
N
News | PayPal Newsroom
H
Help Net Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
The Exploit Database - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
博客园 - Franky
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
A
About on SuperTechFans
AWS News Blog
AWS News Blog
S
Secure Thoughts
The Cloudflare Blog
Hugging Face - Blog
Hugging Face - Blog
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
V2EX - 技术
V2EX - 技术
Recorded Future
Recorded Future
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
MyScale Blog
MyScale Blog
Martin Fowler
Martin Fowler
Help Net Security
Help Net Security
人人都是产品经理
人人都是产品经理
Latest news
Latest news
C
Cyber Attacks, Cyber Crime and Cyber Security
大猫的无限游戏
大猫的无限游戏
The Last Watchdog
The Last Watchdog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
月光博客
月光博客
H
Hacker News: Front Page
P
Proofpoint News Feed
N
News and Events Feed by Topic
H
Heimdal Security Blog
L
Lohrmann on Cybersecurity
有赞技术团队
有赞技术团队
L
LangChain Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog

博客园 - 神八

RabbitMQ上手记录–part 6-Shovel RabbitMQ上手记录–part 5-节点集群高可用(多服务器) RabbitMQ上手记录–part 4-节点集群(单机多节点) RabbitMQ上手记录–part 3-发送消息 RabbitMQ上手记录–part 2 - 安装RabbitMQ RabbitMQ 上手记录-part 1-基础概念 在Docker平台实现MySQL Replication(复制) 把AspDotNetCoreMvc程序运行在Docker上-part5:使用docker-compose 把AspDotNetCoreMvc程序运行在Docker上-part4:实现负载均衡 把AspDotNetCoreMvc程序运行在Docker上-part3:使用独立的存储容器 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像 把AspDotNetCoreMvc程序运行在Docker上-part1 基于ASP.Net Core学习Docker技术第一步:在CentOS7安装Docker平台 Angular2 不明真相第一个Demo例子 ASP.NET MVC Core的TagHelper (高级特性) ASP.NET MVC Core的TagHelper(基础篇) ASP.NET MVC Core的ViewComponent ASP.NET MVC Core Starter Kit 创建.NET Core程序的Nuget Package
在ubuntu下使用visual studio code编写python
神八 · 2017-06-01 · via 博客园 - 神八

感觉有了visual studio code之后,不管编写什么语言的代码都可以,简单安装对应的语言插件即可。

这不轮到了最近比较热的python语言,蹭着AI的热度,python语言成为了工程师们又一必备的行走江湖的技能。

其实使用visual studio code编写python的开发环境配置真得很简单,尤其是在Linux系统下,通常都自带了python2和python3,直接省去了安装python的步骤。

下面看看ubuntu下如何搭建这个环境。

1.首先得安装了visual studio code,然后命令行到或创建一个目录,执行如下命令

code .

2.然后新建一个helloworld方式的py文件,内容如下

if __name__ == '__main__':
    print 'hello world'

之后visual stuido code就会在顶部很机智的提示你,需要安装一个python插件

image

点击“Show Recommendations”之后就会打开插件的小视图窗口,并且列出Python相关的插件

image

选择安装第一个(Python from Don Jayamanne)即可, 不问为什么,就看下载量他最多,应该不是刷的。

然后耐心等待安装完成。

3.配置插件

用上插件之后,就会有智能补全提示,智能感知之类的程序员喜闻乐见的功能。当然有如下两大功能还是需要着重说明的,因为我在用这两个功能稍稍动了一下脑筋。

语法错误提示

如下这段代码因为缩进不对,在保存的时候会弹出一个提示,因为这个插件默认使用了pylint做语法检查,code也很贴心的告知我们需要安装pylint

image

好了轻松点击install pylint之后,再次保存,还是提示没有安装pylint,一开始以为是bug,而且不知道这个插件到底有多重要,于是直接点击了Disabled this Linter.

点击了Disabled之后,在.vscode下生成了一个settings.json文件,内容如下

{
    "python.linting.pylintEnabled": false
}

原来是通过这种方式来进行配置的。

但是如果没有了语法检查,那么很难发现问题,还要把这个功能启用,但是需要解决”提示没有安装pylint”问题。

应该是路径设置错误了,code不知道pylint安装在哪里。

经过搜索和尝试之后发现,原来这个路径是需要配置的,并且配置的时候是有智能提示的!

也就是说不怕敲错,更不用去记!

image

ok,那这个Path怎么知道呢?这里就用到了强大的Locate命令,找到对应的插件所在路径即可

Locate pylint

通常是在用户目录.local/bin下,这是我本机配置

{
    "python.linting.pylintPath":"/home/leo/.local/bin/pylint",
}

语法检查插件正常启用之后,那么错误的代码下会有红色的波浪线提示错误信息

image

格式化插件

在ubuntu下使用visual stuido code通常很习惯用ctrl+shift+i去格式化文档,当对python代码文件执行命令时,会提示使用一个格式化提供方,比如yapf。

当然这个code也会很贴心的引导你去安装,比如我选择了yapf,并且安装对应的package。

当然也会有上一个找不到插件的问题,同样方式设置对应的path即可,配置如下

{
    "python.formatting.provider": "yapf",
    "python.linting.pylintPath":"/home/leo/.local/bin/pylint",
    "python.formatting.yapfPath": "/home/leo/.local/bin/yapf"
}

这时候运行格式化命令就ok了。

4.调试

这个就更加简单了,直接点开那个Debug的小窗口,然后就会看到启动调试的按钮,旁边自动选择了Python语言,点击启动之后会自动生成launch.json文件,之后的调试跟普通的代码没什么区别,该打断点的大,该停的停。

image

好了,有跟多的发现再继续整理。