pythonflake
1. 什么是python的搭建环境
搭建环境,就是需要编程用的语言和用什么进行编程,用什么进行调试的这几个条件的总和。
搭建框架,一般不是搭建,都是尽量选择现有的,自己设计构造框架,在编程中总会遇见很多类似的问题和需求,为了避免重复世滑段编写,于是就有人设计了框架让虚,用来简化重复需求的编写。
2. python第三方库为什么
Python第三方库几乎都可以在github或者 pypi上找到源码。源码包格式大概有zip 、 tar.zip、 tar.bz2。解压这些包,进入解压好的文件夹,通常会有一个setup.py的文件。打开命令行,进入该文件夹。运行以下命令,就能把这个第三库安装到系统里:
Python
python setup.py install
1
python setup.py install
或者借助pip,则不需要解压:pip install package.zip
3. 如何用python画一个Koch snowflake
可以这样做:
生成转角序列,然后转换为像素坐标。最后用python的PIL模块族液画图,保存为"koch.bmp"此穗简并显示图形森裤。概念性代码:
#!/usr/bin/env python
#coding:utf-8
from PIL import Image, ImageDraw
from math import sin, cos, pi
def genRaList(raListIn, n):
raListOut = raListIn
for i in range(n):
raListOut = []
for ra in raListIn:
raListOut.extend([ra, -60, 120, -60])
raListIn = raListOut
return raListOut
def raToPoints(xy, l, raList, n):
degreeToRadian = pi/180
angleDegree = 0
r = l*(3**(-n))
x,y = xy
pt = [(x,y)]
for ra in raList:
angleDegree += ra
angleRadian = angleDegree*degreeToRadian
x += r*cos(angleRadian)
y += -r*sin(angleRadian)
pt.append((x,y))
return pt
def drawKoch(xy, l, size, raList0, n):
raList = genRaList(raList0, n)
points = raToPoints(xy, l, raList, n)
im = Image.new('1', size, 'white')
draw = ImageDraw.Draw(im)
draw.polygon(points, fill=None, outline='black')
im.save('koch.bmp')
im.show()
if __name__ == '__main__':
raList0 = [240, 120, 120]
drawKoch((207, 34), 300, (415, 415), raList0, 5)
4. 使用vim搭建python开发环境-
最近开始经常需要用vim写代码,这里记录一下自己利用vim搭建基本的python开发环境所使用的插件和一些基本配置
在 ~/.vimrc 文件中,添加如下的信息,完成vim的一些基本配置。
从 GitHub clone Vundle.vim 文件到 ~/.vim/bundle 文件夹下,完成Vundle的安装。
然后修改 ~/.vimrc 文件,添加如下的信息
若使用 Vundle 安装 nerdcommenter 插件,需要中 Vim 的配置文件中添加
然后在 Vim 的命令行模式下执行 :BundleInstall 命令完成插件的安装
nerdcommenter的主要使用方式:
然后在 Vim 的命令行模式下执行 :BundleInstall 命令完成插件的安装
通过vundle安装好NERDTree插件后,在vim命令行模式输入命令:NERDTree就可以看到NERDTree的显示界面。
使用组合按键 Ctrl + w,可将光标自动在左右侧窗口进行切换。
如果想要每次启动vim的时候都默认开启NERDTree。可以在vimrc文件中添加:
jedi-vim插件依赖python开源库 “jedi” ,可以使用pip安装:
Vim 普通模式下按 F7 便可以直接启动 flake8 对当前文件进行语法和格式检查。
以上是我自己用的vim工具配置,如果大家有其他的好用的插件或者配置插件,欢迎一起交流分享呀
5. 怎么解决VSCode的python插件问题
想用VSCode进行Python调试,安装了python插件后,参考Python and VS Code进行设置:
(个人判断应该是unitTest的设置出了问题)
{
// Python specific
"python.pythonPath": "D:\\Program Files\\Python36\\python",
"python.autoComplete.extraPaths": [
"D:\\Program Files\\Python36\\Lib\\site-packages",
"D:\\Program Files\\Python36\\Lib"
],
"python.devOptions": [
"DEBUG"
],
"python.linting.pylintEnabled": false,
"python.linting.flake8Enabled": true,
"python.formatting.provider": "autopep8",
"python.unitTest.unittestEnabled": true,
"python.unitTest.pyTestEnabled": true,
"python.unitTest.nosetestsEnabled": false,
// Extension and editor preferences
"files.insertFinalNewline": true,
"editor.fontFamily": "Fira Mono",
"editor.fontSize": 14,
"editor.rulers": [79],
"editor.roundedSelection": false,
"explorer.openEditors.visible": 0,
"trailing-spaces.trimOnSave": true,
"files.exclude": {
"**/.git": true,
"**/.DS_Store": true,
".vscode": true,
"**/__pycache__": true,
"**/**/*.pyc": true
}
}
但是每次打开py文件的时候,VS Code都提示“No tests discovered, please check the configuration settings for the tests.”
请问怎么解决这个问题?
谢谢
"python.unitTest.unittestEnabled": true,
"python.unitTest.pyTestEnabled": true,
把这两行改为false
6. 如何配置vscode的python编译环境
为VSCode安装扩展
用VSCode编程是需要依赖扩展的。写Python需要安装python的扩展,写C++需要安装C++的扩展。刚打开编辑器的时候,它一般会推荐一些扩展,你如果什么都不知道,可以先安装官方推荐的这些扩展:
修改VSCode的一些选项的默认值
VSCode有很多选项可以被修改,其各个选项都有默认值,这些默认值存储在"\settings.json"中(不过我没找到这个文件),用户如果想修改某些选项的值(比如:修改字体的大小),VSCode会自动帮我们生成一个“settings.json”文件,然后我们直接在这个文件中配置自己想要的值即可。
VSCode还没有创建"settings.json"文件:
VSCode帮我们创建了"settings.json"文件:
我们修改字号,让字体大一些。修改完后,保存一下,自定义的值就会覆盖默认值,修改就生效了。
用VSCode编写和调试python程序
下面就开始用VSCode编程了。因为python的配置超简单,我们以python为例来说明一下。
https //segmentfault com/q/1010000005897116
VSCode是以文件夹作为项目单位的。所以,我们如果要新建一个python项目的话,需要新建一个文件夹,然后在这个文件夹里面放置.py文件。然后让VSCode"打开文件夹",这样VSCode就能识别这个项目了。(当然可以用VSCode直接创建文件夹和文件。)
先创建test_python文件夹,里面创建一个test.py文件。
然后用VSCode加载它:
加载后的样子。可以看到,因为安装了python扩展,已经有高亮等效果了。
下面开始调试。
很显然要选择python选项:
然后VSCode为我们自动生成了"launch.json"文件,此文件有很多配置项,有的选项是默认从"settings.json"中取值的(比如"config.python.pythonPath")。如果"settings.json"中没有配置它们的话,调试时可能会无法启动。
同时,项目文件夹下面还自动生成了".vscode"文件夹。文件"launch.json"就在这个文件夹中。此时VSCode才算是真正意义上接手了这个项目文件夹。
网上的教程里,直接先在"settings.json"中把"python.pythonPath"先配置了一下,我当时不是太理解。现在看来,我们也需要配置一下了。
配置完之后,就可以正常调试程序了。
用VSCode调试带参的Python程序
修改test.py里面的代码,让它能打印参数(修改后的代码见下面的图片)。
修改launch.json,找到"configurations"中"name"为"Python"的那个配置块,给它添加"args"项,如下图所示:
添加前的配置块:
添加后的配置块:
文件launch.json修改完毕后,按F5调试程序,可以看到控制台输出的结果:
在按F5调试时,VSCode每次都会在程序入口处暂停住,这是配置项"stopOnEntry"在起作用,将其改成false后就不会出现这种情况了。
用VSCode自动格式化代码
VSCode“自动格式化代码”的快捷键是“Alt+Shift+F”。要格式化Python代码,需要安装Python包yapf(或autopep8、等)。
在命令行下执行:
[plain] view plain
python -m pip install yapf
然后配置"settings.json",启用yapf:
用VSCode对python代码进行语言分析
VSCode使用python的语言分析(写python代码的时候,编辑器会提示哪里出错,哪里的代码格式不规范),可以安装flake8(或pylint、等):
在命令行下执行:
[plain] view plain
python -m pip install flake8
然后配置"settings.json",启用flake8:
更换文件图标主题(使VSCode左侧的资源管理器根据文件类型显示图标):
可以选择已经存在的文件图标主题:"文件"->"首选项"->"文件图标主题"->"Seti(Visual Studio Code)"。
你也可以安装“vscode-icons”插件,安装的方式:
在“扩展(Ctrl+Shift+X)”中,搜索“vscode-icons”,然后安装并重新加载它,然后VSCode会让你执行一些操作,以激活"vscode-icons"插件。操作为:
"文件"->"首选项"->"文件图标主题"->"VSCode Icons"。对应到英文的话,应该是"File" -> "Preferences" -> "File Icon Theme"->"VSCode Icons"。
Guides(缩进线插件,让代码看起来更清晰):
在“扩展(Ctrl+Shift+X)”中,搜索“Guides”,然后安装并重新加载它即可。
7. 如何落实 Python 代码风格
编码规范选择
Python 作为灵活的脚本语言,在格式方面并不存在太多的限制(相对编译语言)。这样会导致一个比较蛋疼的问题:在项目开发过程中,由于个人的习惯和编码风格,导致程序缺少一个统一的标准,每个人的代码表现形式也不同。因此,在实际项目由于新人加入、老人退出过程中会产生比较高的模块维护成本。因此,在实际的项目开发中,选择一个编码标准也是比较重要的。
面对编码风格选择,比较常见的包括 PEP-8 和 Google Python Style Guide。在最后,我选择了 PEP-8作为项目中的实际应用标准,要求程序需要在满足编码要求规范的前提下进行编码。
除了对代码编码更个的要求以外,我们还对 import 等具体的细节进行了标准化。
尽量规范注释
在降低模块维护成本过程中,另外一个比较好的方式是尽量提供良好的代码注释。尽管这个算是一个和语言无关的老生常谈的问题,我只是想在这里提一下另外一个 PEP:PEP-0257,这里介绍了一种约定的 docstring 编写方法,对于编辑器而言,可以通过插件快速实现注释。
不过我考虑到对个人习惯的影响较大,这个 PEP 实际项目开发中并未作为实际开发规范,只是鼓励大家在项目中进行执行。
从规范到执行
从代码开发最初的规范约定是一回事,当回到开发过程中,开发者难免会因为个人的习惯或者疏忽等各种原因导致程序开发过程中程序编码风格不统一问题。因此在实际开发过程中,我们又需要通过工具保证程序在实际过程中能够帮助规范化或者检查格式错误。
借助社区的力量,我们最终选择了工具 flake8、yapf和isort。其中,flake8用于检查我们的代码是否正确的执行了标准;yapf工具用于快速进行PEP-8标准化,减少了人工修改的成本;isort工具则是执行我们之前提到的 import 标准化工作。
yapf是 Google 员工开发的一个 Python 格式化工具,它支持 PEP8 与 Google 编码标准,一些具体的使用方式可以查看项目的主页。在实际的项目落地过程中,你应该会遇到的一个问题是关于flake8与yapf标准不一致导致一个通过另一个无法正常通过的问题。这一个方面,我们选择的方式是统一妥协成flake8的标准。对于yapf不支持的部分,我们建议活用# yapf: disable标记。
还有另一个问题是关于一些 flake8本身的标准(或者说 PEP-8 标准)问题,比如flake8常见问题:E501程序代码长度超过 79 个字符问题,我们实际编码过程中对这一标准做了适当妥协,允许最大单行字符串长度为 200。但是我们仍然建议缩小至 79 个字符内表示完。
从执行到检查
在最后一关,是我们的上线前检查。我们设置了代码质量检查关卡和系统集成测试。
在代码质量检查过程中,我们会对程序的实际代码质量进行评估。我们对代码质量进行打分,对于分值较低的代码不允许提交进入 master分支。代码质量的检查,我们同样的采用了flake8工具作为统一标准。最后个人的代码质量,通过 Webhook 也会直接反馈在具体的项目管理工具中。
8. 我为什么说 Python 是大数据全栈式开发语言 怎样成为数据分析师
就像只要会JavaScript就可以写出完整的Web应用,只要会Python,就可以实现一个完整的大数据处理平台。
云基础设施
这年头,不支持云平台,不支持海量数据,不支持动态伸缩,根本不敢说自己是做大数据的,顶多也就敢跟人说是做商业智能(BI)。
云平台分为私有云和公有云。私有云平台如日中天的 OpenStack
,就是Python写的。曾经的追赶者CloudStack,在刚推出时大肆强调自己是Java写的,比Python有优势。结果,搬石砸脚,2015年
初,CloudStack的发起人Citrix宣布加入OpenStack基金会,CloudStack眼看着就要寿终正寝。
如果嫌麻烦不想自己搭建私有云,用公有云,不论是AWS,GCE,Azure,还是阿里云,青云,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青云只提供Python SDK。可见各家云平台对Python的重视。
提到基础设施搭建,不得不提Hadoop,在今天,Hadoop因为其MapRece数据处理速度不够快,已经不再作为大数据处理的首选,但
是HDFS和Yarn——Hadoop的两个组件——倒是越来越受欢迎。Hadoop的开发语言是Java,没有官方提供Python支持,不过有很多第
三方库封装了Hadoop的API接口(pydoop,hadoopy等等)。
Hadoop MapRece的袭芦替代者,是号称快上100倍的 Spark ,其开发语言是Scala,但是提供了Scala,Java,Python的开发接口,想要讨好那么多用Python开发的数据科学家,不支持Python,真是说不过去。HDFS的替代品,比如GlusterFS, Ceph 等,都是直接提供Python支持。Yarn的替代者, Mesos 是C++实现,除C++外,提供了Java和Python的支持包。
DevOps
DevOps有个中文名字,叫做 开发自运维 。互联网时代,只有能够快速试验新想法,并在第一时间,安全、可靠的交付业务价值,才能保持竞争力。DevOps推崇的自动化构建/测试/部署,以及系统度量等技术实践,是互联网时代必不可少的。
自动化构建是因应用而易的,如果是Python应用,因为有setuptools, pip, virtualenv, tox,
flake8等工具的存在,自动化构建非常简单。而且,因为几乎所有Linux系统都内置Python解释器,所以用Python做自动化,不需要系统预
安装什么软件。
自动化测试方面,基于Python的 Robot Framework 企业级应用最喜欢的自动化测试框架,而且和语言无关。Cucumber也有很多支持者,Python对应的Lettuce可以做到完全一样的事情。 Locust 在自动化性能测试方面也开始受到越来越多的关注。
自动化配置管理工具,老牌的如Chef和Puppet,是Ruby开发,目前仍保持着强劲的势头拍肢带。不过,新生代 Ansible 和 SaltStack ——均为Python开发——因为较前两者设计更为轻量化,受到越来越多开发这的欢迎,已经开始给前辈们制造了不少的压力。
在系统监控与度量方面,传统的Nagios逐渐没落,新贵如 Sensu 大受好评,云服务形式的New Relic已经成为创业公司的标配,这些都不是直接通过Python实现的,不过Python要接入这些工具,并不困难。
除了上述这些工具,基于Python,提供完整DevOps功能的PaaS平台,如 Cloudify 和 Deis ,虽未成气候,但已经得到大量关注。
网络爬虫
大数据的数据从哪里来?除了部分企业有能力自己产生大量的数据,大部分时候,是需要靠爬虫来抓取互联网数据来做分析。
网络爬虫是Python的传统强势领域,最流行的爬虫框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能够独当一面的类库。
不过,网络爬虫并饥碧不仅仅是打开网页,解析HTML这么简单。高效的爬虫要能够支持大量灵活的并发操作,常常要能够同时几千甚至上万个网页同时抓取,传统的
线程池方式资源浪费比较大,线程数上千之后系统资源基本上就全浪费在线程调度上了。Python由于能够很好的支持协程( Coroutine )操作,基于此发展起来很多并发库,如Gevent,Eventlet,还有Celery之类的分布式任务框架。被认为是比AMQP更高效的ZeroMQ也是最早就提供了Python版本。有了对高并发的支持,网络爬虫才真正可以达到大数据规模。
抓取下来的数据,需要做分词处理,Python在这方面也不逊色,着名的自然语言处理程序包NLTK,还有专门做中文分词的Jieba,都是做分词的利器。
数据处理
万事俱备,只欠东风。这东风,就是数据处理算法。从统计理论,到数据挖掘,机器学习,再到最近几年提出来的深度学习理论,数据科学正处于百花齐放的时代。数据科学家们都用什么编程?
如果是在理论研究领域,R语言也许是最受数据科学家欢迎的,但是R语言的问题也很明显,因为是统计学家们创建了R语言,所以其语法略显怪异。而且
R语言要想实现大规模分布式系统,还需要很长一段时间的工程之路要走。所以很多公司使用R语言做原型试验,算法确定之后,再翻译成工程语言。
Python也是数据科学家最喜欢的语言之一。和R语言不同,Python本身就是一门工程性语言,数据科学家用Python实现的算法,可以直
接用在产品中,这对于大数据初创公司节省成本是非常有帮助的。正式因为数据科学家对Python和R的热爱,Spark为了讨好数据科学家,对这两种语言
提供了非常好的支持。
Python的数据处理相关类库非常多。高性能的科学计算类库NumPy和SciPy,给其他高级算法打了非常好的基础,matploglib让
Python画图变得像Matlab一样简单。Scikit-learn和Milk实现了很多机器学习算法,基于这两个库实现的 Pylearn2 ,是深度学习领域的重要成员。 Theano 利用GPU加速,实现了高性能数学符号计算和多维矩阵计算。当然,还有 Pandas ,一个在工程领域已经广泛使用的大数据处理类库,其DataFrame的设计借鉴自R语言,后来又启发了Spark项目实现了类似机制。
对了,还有 iPython ,这个工具如此有用,以至于我差点把他当成标准库而忘了介绍。iPython是一个交互式Python运行环境,能够实时看到每一段Python代码的结果。默认情况下,iPython运行在命令行,可以执行 ipython notebook 在网页中运行。用matplotlib绘制的图可以直接嵌入式的显示在iPython Notebook中。
iPython Notebook的笔记本文件可以共享给其他人,这样其他人就可以在自己的环境中重现你的工作成果;如果对方没有运行环境,还可以直接转换成HTML或者PDF。
为什么是Python
正是因为应用开发工程师、运维工程师、数据科学家都喜欢Python,才使得Python成为大数据系统的全栈式开发语言。
对于开发工程师而言,Python的优雅和简洁无疑是最大的吸引力,在Python交互式环境中,执行 import this
,读一读Python之禅,你就明白Python为什么如此吸引人。Python社区一直非常有活力,和NodeJS社区软件包爆炸式增长不
同,Python的软件包增长速度一直比较稳定,同时软件包的质量也相对较高。有很多人诟病Python对于空格的要求过于苛刻,但正是因为这个要求,才
使得Python在做大型项目时比其他语言有优势。OpenStack项目总共超过200万行代码,证明了这一点。
对于运维工程师而言,Python的最大优势在于,几乎所有Linux发行版都内置了Python解释器。Shell虽然功能强大,但毕竟语法不够优雅,写比较复杂的任务会很痛苦。用Python替代Shell,做一些复杂的任务,对运维人员来说,是一次解放。
对于数据科学家而言,Python简单又不失强大。和C/C++相比,不用做很多的底层工作,可以快速进行模型验证;和Java相比,Python语法简
洁,表达能力强,同样的工作只需要1/3代码;和Matlab,Octave相比,Python的工程成熟度更高。不止一个编程大牛表达过,Python
是最适合作为大学计算机科学编程课程使用的语言——MIT的计算机入门课程就是使用的Python——因为Python能够让人学到编程最重要的东西——
如何解决问题。
9. 如何编写高质量的python程序
代码规范
首先阅读下面的两份规范,并深入理解。
Python社区官方建议采用的Python编码风格:PEP8 中文版
Google SoC 建议的 Python 编码风格:Google Python Style Guide 中文版
写出规范的代码是写出高质量代码的第一步,并且有助于培养仔细的习惯。
为了培养规范写代码的习惯,可以安装flake8这个型前工具,它不仅可以检查代码风格是否符合官方建议(PEP8),而且还能找出潜在的隐患(用Pyflakes做语法分析),更逆天的是还能检测到你有些函数写的太复杂(代码圈复杂度)了,更更逆天的是可以设置git commit之前必须通过这些检查。
当然具体操作需要根据自己的项目进行一些定制,比如可以忽略E501,W293。
空白项目模版
好的开始是成功的一半,写python代码就从pyempty开始吧。
在github上看一下那些经典的项目,web.py,flask, pep8,他们的项目目录都很规范,综合借鉴了一些项目的特点,我写了这个pyempty项目。
1.README.md 这里写你项目的简介,quick start等信息,虽然distutils要求这个文件没有后缀名,但github上如果后缀是.md的话可以直接转换成html显示。
2.ChangeLog.txt 该文件存放程序各版本的变更信息,也有一定的格式,参考web.py的ChangeLog.txt
3.LICENES.txt 这里存放你项目使用的协议,不要编写自己的协议。
4.requirements.txt 如果你的项目需要依赖其它的python第三方库,在这里一行一个写出来,可能pip install的时候能自动帮你安装
5.setup.py 安装脚本,后面详细介绍
6.docs 里面存放你的项目文档,如概要设计,详细设计,维护文档,pydoc自动生成的文档等,强烈推荐大家使用MarkDown格式编写文档
7.src 这个目录里存放项目模块的主要代码,尽量不要把模块目录直接放到根目录,模块代码目录可以卜樱清在setup.py里指定的
8.tests 这个目录存放所有单元测试,性能测试脚本,单元测试的文件确保以test_做前缀,这样distutils会自动打包这些文件,并且用python -m unittest discover -s ./ -p 'test_*.py' -v 可以直接执行这些测试
单元测试
Martin Fowler:"在你不知道如何测试代码之前,就不该编写程序。而一旦你完成了程序,测试代码也应该完成。除非测试成功,你不能认为你编写出了可以工作的程序。"
我们有很多理由不写单元测试,归根结底是懒,虽然代码大全上说:
大部分研究都发现,检测比测试的成本更小。NASA软件工程实验室的一项研究发现,阅读代码每小时能够检测出来的缺陷要比测试高出80%左右(Basili and Selby 1987)。后来,IBM的一项研究又发现,检查发现的一个错误只需要3.5个工作时,而测试则需要花费15-25个工作时(Kaplan 1995)。
但是单元测试还是让别人相信你的代码有很高质量的最有力证据。
好了,请详细阅读:
深入python3.0: 单元测试-2.x也适用
Unit testing framework 不完整中文版
文档
敏捷开发不是提倡什么文档也不写,没有文档就没有传承和积累,轮岗或新人接手任务就会遇到很大的麻烦,所以我决定每个项目最少要写以下文档:
1.nalysis.model.md 概要设计文档,不同于README.md文件,该文档应该写于项目开发之前,把项目有哪些功能,大概分几个模块等项目整体概述信息写一下。
2.design.model.md 详细设计文档,不用太详细,至少把项目依赖哪些东西,谁依赖这个项目,重要算法流程描述,代码整体结构等写出来。
3.maintain.md 维护文档,这个我觉得最重要,你的服务都记录哪些日志,需要监控哪些业务指标,如何重启,有哪些配置项等,没这些东西,你的项目很难运维。
上面这些文档都是项目全局性的文档,不适合写在docstring或注视里,所以要有单独的文档。
打包
python有专门的模块打包系统distutils,你可以用这套机制把你的代码打包并分发到Pypi上,这样任何人都可以用pip或easy_install安装你的模块。
如果你颂肆开发的是内部项目,还可以用mypypi架设私有的pypi,然后把项目的大的版本更新发布到内部的pypi上,配置管理人员和运维人员可以很方便的从pypi上拉取代码安装到测试环境或生产环境。
发布大版本的时候要给版本命名及编写ChangeList,可以参考Git Pro的相关章节,主要记住以下几个命令。
git tag -a v0.1 -m 'my test tag' #给大版本命名,打Tag git describe master #给小版本命名,Git将会返回一个字符串,由三部分组成:最近一次标定的版本号,加上自那次标定之后的提交次数,再加上一段SHA-1值 git shortlog --no-merges master --not v0.1 #生成版本简报,ChangeList
python有自己的打包机制,所以一般不要用git archive命令。
当然大版本管理用pypi管理比较合适,小的bug fix,紧急上线等好多公司都是用git直接从生产环境拉代码更新,因为git,svn等可以很方便的撤销某次更新,回滚到某个位置。
关于打包,请阅读如下链接:
Python 打包指南
深入Python3.0:打包 Python 类库
python打包:分发指定文件
10. vscode怎么编译python
最近在学习python,之前一直用notepad++作为编辑器,偶然发现了VScode便被它的颜值吸引。用过之后发现它启动快速,插件丰富,下载安装后几乎不用怎么配置就可以直接使用,而且还支持markdown。当然,最主要的还是好看:p
效果图:
VScode下载地址
安装python插件
打开VScode,Ctrl+p
输入 "ext install python",搜索时间可能会比较长
选择下载量最高的那个插件点击安装(根据网络情况,安装时间不确定,我当初装了挺久,我这边已经下载好了所以显示卸载)
到这边VScode就可以编辑python代码了,编辑完代码按F5即可运行。初次运行会让你选环境,选择python即可。
默认按F5后需要再按一次F5程序才会运行,如果要按F5马上运行需要将launch.json文件的 "stopOnEntry": true,改为 "stopOnEntry": false。
推介个插件,vscode-icons可以使VScode左侧的资源管理器根据文件类型显示图标
配置flake8
安装flake8之后写代码的时候编辑器就会提示哪里出错,代码格式不规范也会提示
打开命令行
输入 "pip install flake8"
安装flake8成功后,打开VScode,文件->首选项->用户设置,在settings.json文件中输入"python.linting.flake8Enabled": true
配置yapf
安装yapf之后在VScode中按Alt+Shift+F即可自动格式化代码
打开命令行
输入 "pip install yapf"
安装yapf成功后,打开VScode,文件->首选项->用户设置,在settings.json文件中输入"python.formatting.provider": "yapf"
几个小技巧
查看函数或者类的定义
Ctrl+鼠标左键点击函数名或者类名即可跳转到定义处,在函数名或者类名上按F12也可以实现同样功能
更改变量名
在变量名上按F2即可实现重命名变量
python断点调试
在行号的左边点击即可设置断点,在左边的调试界面可以查看变量的变化
隐藏菜单栏
这个属于个人习惯,如果你也感觉菜单栏很碍眼,可以点击查看->切换菜单栏,即可隐藏菜单栏。需要菜单栏的时候按Alt键即可查看
设置快捷键
文件->首选项->键盘快捷方式,将需要的修改的快捷键的整个大括号里面的内容复制到右边keybindings.json文件中,然后修改“key”的值为你需要的快捷键即可。我这边只修改了复制一行和删除一行的快捷键。
最后
有什么需要补充或者哪里有错误的欢迎大家指出(。・`ω´・)