在VS代码中编辑Python
在VS代码中编辑Python
Python扩展提供了许多用于在Visual Studio代码中编辑Python源代码的功能:
也见Linting。
自动完成和智能感知
为当前工作文件夹中的所有文件以及安装在标准位置的Python软件包提供自动完成和IntelliSense。
要为安装在其他非标准位置的软件包启用IntelliSense,请python.autoComplete.extraPaths
在设置文件中将这些位置添加到集合中(默认集合为空)。例如,您可能已在自定义位置安装了Google App Engine,在这种情况下,您可以按如下方式指定这些位置:
视窗:
"python.autoComplete.extraPaths": [
"C:/Program Files (x86)/Google/google_appengine",
"C:/Program Files (x86)/Google/google_appengine/lib" ]
的MacOS / Linux的:
"python.autoComplete.extraPaths": [
"~/.local/lib/Google/google_appengine",
"~/.local/lib/Google/google_appengine/lib" ]
该python.autoComplete.preloadModules
设置还允许您通过预加载其信息来加速特定包的自动完成。例如:
"python.autoComplete.preloadModules": ["numpy", "pandas", "matplotlib"],
最后,python.autocomplete.addBrackets
设置(默认为false)确定VS代码()
在自动填充函数名称时是否自动添加括号()。例如,如果设置addBrackets
为true:
"python.autoComplete.addBrackets": true,
然后写,import os
然后os.getc
,你会看到自动完成os.getcwd
。选择自动完成会添加os.getcwd()
到源代码中并将光标放在括号内。如果设置为false,则仅os.getcwd
添加到文件中。
有关IntelliSense的更多信息,请参阅IntelliSense。
故障排除
如果自动完成和IntelliSense不适用于自定义模块,请检查以下原因:
原因 | 解 |
---|---|
python解释器的路径不正确 | 检查pythonPath 设置。如果进行更正,请重新启动VS Code。 |
自定义模块位于非标准位置(未使用pip安装)。 | 将位置添加到python.autoComplete.extraPaths 设置并重新启动VS Code。 |
VS Code未从将设置自定义模块路径的活动虚拟环境启动。 | 在命令提示符下启动VS Code并激活正确的虚拟环境,例如:(venv) ter@minal:~$ code 。 |
在终端中运行选择/行(REPL)
在Python中:运行选择/ Line在Python的终端命令(Shift + Enter键)是被选中的任何代码,以一种简单的方式,或在当前行的代码,如果没有选择,并在Python航站楼运行。Python终端命令中的相同运行选择/行也可在上下文菜单中找到,以便在编辑器中进行选择。
在终端/ REPL中运行的源代码是累积的,直到终端的当前实例关闭。
如有必要,该命令将打开Python终端; 您还可以使用Python:Start REPL命令直接打开交互式REPL环境。请注意,初始启动可能需要一些时间,特别是如果您运行的第一个语句是import
。
首次使用Python:在Python终端命令中运行选择/行时,VS代码可以在该环境准备好之前将文本发送到REPL,在这种情况下,选择或行不会运行。如果遇到此行为,请再次尝试命令REPL已完成加载。
注意:目前,使用Shift + Enter可使编辑器保持在同一行源代码中。问题480讨论了自动移动到下一行。
格式化
Python扩展支持使用autopep8(默认值),黑色或yapf进行源代码格式化。
常规格式设置
设置 (python.formatting。) |
默认值 | 描述 |
---|---|---|
提供商 | "autopep8" |
指定要使用的格式化程序,“autopep8”,“yapf”或“black”。 |
格式化程序特定的设置
以下设置适用于各个格式化程序。Python扩展查看当前pythonPath
格式化程序。要在其他位置使用格式化程序,请在相应的自定义路径设置中指定该位置。
格式化 | 安装步骤 | 参数设置 (python.formatting。) |
自定义路径设置 (python.formatting。) |
---|---|---|---|
autopep8 | pip install pep8 pip install --upgrade autopep8 |
autopep8Args | autopep8Path |
黑色 | 点子安装黑色 | blackArgs | blackPath |
yapf | 点击安装yapf | yapfArgs | yapfPath |
使用自定义参数时,在命令行上用空格分隔的参数字符串的每个顶级元素必须是args列表中的单独项。例如:
"python.formatting.autopep8Args": ["--max-line-length", "120", "--experimental"],
"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"]
"python.formatting.blackArgs": ["--line-length", "100"]
在第二个示例中,顶级元素{based_on_style: chromium, indent_width: 20}
是大括号中包含的单个值,因此该值中的空格不会描绘单独的元素。
故障排除
如果格式化失败,请检查以下可能的原因:
原因 | 解 |
---|---|
python解释器的路径不正确 | 检查pythonPath 设置。 |
格式化程序未安装在当前环境中 | 打开命令提示符,导航到pythonPath 设置中指定的位置,然后运行pip install 格式化程序。 |
格式化程序的路径不正确。 | 检查相应python.formatting.<formatter>Path 设置的值。 |
格式化程序的自定义参数不正确。 | 检查相应的python.formatting.<formatter>Path 设置是否包含参数,并且python.formatting.<formatter>Args 包含单个顶级参数元素的列表,例如"python.formatting.yapfArgs": ["--style", "{based_on_style: chromium, indent_width: 20}"] 。 |
使用黑色格式化程序时,VS代码在将源代码粘贴到编辑器时发出以下警告:黑色不支持“格式选择”命令。
要防止出现此警告,请将以下条目添加到用户或工作区设置以禁用Python文件粘贴格式:
"[python]": {
"editor.formatOnPaste": false
}
重构
Python扩展添加了以下重构命令:Extract Variable,Extract Method和Sort Imports。
提取变量
提取当前范围内所选文本的所有类似事件,并将其替换为变量。新方法的名称为newvariableNNN
NNN是随机数。
调用者:
- 上下文菜单:右键单击选择并选择“ 提取变量”。
- 命令选项板(⇧⌘P),然后是Python Refactor:Extract Variable。
- 为
python.refactorExtractVariable
命令分配键盘快捷键。
提取方法
提取当前范围内所选表达式或块的所有类似事件,并将其替换为方法调用。新方法的名称为newmethodNNN
NNN是随机数。
调用者:
- 上下文菜单:右键单击选择,然后选择“ 提取方法”。
- 命令选项板(⇧⌘P),然后是Python Refactor:Extract Method。
- 为
python.refactorExtractMethod
命令分配键盘快捷键。
排序进口
Sort Imports使用isort包将来自同一模块的特定导入合并为单个import
语句,并按import
字母顺序组织语句。
调用者:
- 在编辑器中单击鼠标右键,然后选择Sort Imports(不需要选择)
- 命令选项板(⇧⌘P),然后是Python Refactor:Sort Imports
- 为
python.sortImports
命令分配键盘快捷键 - 启用排序时保存文件。
在python.sortImports.args
设置中指定了isort的自定义参数,其中每个顶级元素(在命令行上用空格分隔)是数组中的单独项:
"python.sortImports.args": ["-rc", "--atomic"],
要使用自定义isort脚本,请使用该python.sortImports.path
设置指定路径:
其他配置可以存储在.isort.cfg
文件中,如配置isort中所述。
在保存时排序导入
要在保存文件时自动对导入进行排序,请将以下条目添加到用户或工作区设置:
"[python]": {
"editor.codeActionsOnSave": {
"source.organizeImports": true
}
}
下一步
- Linting - 启用,配置和应用各种Python链接。
- 调试 - 学习本地和远程调试Python。
- 单元测试 - 配置单元测试环境并发现,运行和调试测试。
- 基本编辑 - 了解强大的VS代码编辑器。
- 代码导航 - 快速浏览源代码。
- IntelliSense - 了解IntelliSense功能。
在VS代码中编辑Python的更多相关文章
- 平时代码中不符合python风格的举例
良好的代码风格体现出自己的专业,良好的代码风格,方便同事之间协作. 下面举例讲讲自己在代码中不符合python风格的一些情况,方便自己写出优雅的代码. 段落之间空两行 很长的参数用括号连接但是不要超过 ...
- 在 C 代码中嵌入 Python 语句或使用 Python 模块 (Visual Studio 2013 环境设置)
1) 新建一个 内嵌 Python 语句的 C 代码, // This is a test for check insert the Python statements or module in C. ...
- python代码中判断版本
在python代码中判断python版本: if sys.version_info < (3, 0): lib.make_flows.argtypes = [c_char_p, c_char_p ...
- Python 3.X 调用多线程C模块,并在C模块中回调python函数的示例
由于最近在做一个C++面向Python的API封装项目,因此需要用到C扩展Python的相关知识.在此进行简要的总结. 此篇示例分为三部分.第一部分展示了如何用C在Windows中进行多线程编程:第二 ...
- Kivy A to Z -- 怎样从python代码中直接訪问Android的Service
在Kivy中,通过pyjnius扩展能够间接调用Java代码,而pyjnius利用的是Java的反射机制.可是在Python对象和Java对象中转来转去总让人感觉到十分别扭.好在android提供了b ...
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- 在html中写python代码的语法和特点-----基于webpy的httpserver
在html文件里写python语法的内容,的注意事项: 1:python程序中的变量通过以下方法传入到html: 1:通过全局变量 :全局变量是不须要用$def with语法实现传递的,仅仅要定义了 ...
- 如何在Java中调用Python代码
有时候,我们会碰到这样的问题:与A同学合作写代码,A同学只会写Python,而不会Java, 而你只会写Java并不擅长Python,并且发现难以用Java来重写对方的代码,这时,就不得不想方设法“调 ...
- android开发中调用python代码(带参数)
android开发主要用到的是java代码,但是当开发涉及到一些算法时,往往用python可以提高软件的运行速度,也更加便捷,这里分享自己项目调用python代码的方式,主要有以下几个步骤(个人方法, ...
随机推荐
- 关于cc -o命令
这个命令很灵活,格式是: cc -o 目标二进制可执行文件 文件1 文件2 文件3 ..... 其中目标文件后面的文件,可为源代码,也可为二进制文件,也可为库文件 比如: //a.c #include ...
- Android的网络通信机制
1. Socket接口 不常用 2.HttpURLConnection接口 3. HttpClient接口 http://blog.csdn.net/ccc20134/article/details/ ...
- 求web前端面试题库及答案
1.对WEB标准以及W3C的理解与认识 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所访问.内容能被 ...
- k-means 图像分割
经典的无监督聚类算法,不多说,上代码. import numpy as np import pandas as pd import copy import matplotlib.pyplot as p ...
- UML和模式应用4:初始阶段(3)--需求制品之用例模型
1. 前言 UP开发包括四个阶段:初始阶段.细化阶段.构建阶段.移交阶段: UP每个阶段包括 业务建模.需求.设计等科目: 其中需求科目对应的需求制品包括:设想.业务规则.用例模型.补充性规格说明.词 ...
- maven项目有红叉,感叹号如何解决?
红色感叹号,pom.xml文件有红叉 修改了Maven私服服务器的IP地址.可在Maven安装路径下的conf/setting.xml中修改ip地址,具体参照“开发工具”/maven.工程中class ...
- linux系统切换用户
无权限上传文件解决办法 1.当前登录的普通用户:user1/password1 2.切换到管理员(user2)用户: sudo su - user2 输入user2用户的密码:password2 或者 ...
- composer安装laravel框架时未生成Vendor解决办法
三个方法并没有关联,可以单独尝试也可以一起设置. 方法一. 去php.ini中查看下面三个扩展项是否开启 extension=php_fileinfo.dll extension=php_mbstri ...
- 服务器上安装FileZilla Server连接时报You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router.
官方资源下载链接:客户端,或者直接点击下载“FileZilla_3.24.0_win64-setup.exe”:服务端,或者直接点击下载“FileZilla_Server-0_9_60_2.exe”: ...
- spring事物的传播行为及隔离
关于@Transactional注解: 添加事务注解1.使用 propagation 指定事务的传播行为, 即当前的事务方法被另外一个事务方法调用时如何使用事务, 默认取值为 REQUIRED, 即使 ...