Visual Studio上开发Python六大功能

一、整合 Python 直译器 (Interpreter) & 互动视窗 (Interactive)

Visual Studio 高度整合 Python 直译器,让您能够在开发过程中切换不同版本的 Python 直译器。此项功能除了能够切换至您所熟悉的 Python 版本进行开发外,更可确保您的程序在不同 Python 版本下运行的函式相容性是合法的,如下图代码当中的 print 函式,在 Python 2.7 环境下为合法的 (红色箭头指向目前为使用 Python 2.7 全域环境直译器)。

若您的系统有安装不同版本的直译器,将会替您整合至 Visual Studio 当中供您选择。如您安装直译器的路径非预设路径或欲自订直译器函示库、直译器位元时,您亦可自行于 Visual Studio 新增自订直译器。

接着我们示范切换至不同版本的 Python 环境,这里以切换至 Python 3.5 为例。

此时会发现 Visual Studio 自动侦测到非该环境版本所支持的函式,透过下引号提示使用者错误的代码片段,提供使用者快速寻找出不同版本间不相容之处,以便快速进行修正工作。

并提供于 Visual Studio 内启动不同版本的互动 (Interactive) 视窗,就像以往在 Python 命令列下做的事情一样,此互动视窗提供您进行初步撰写、测试,以及验证您设计想法的一个简易执行环境。

二、整合 Python 虚拟开发环境 (Virtual Environment)

Visual Studio 提供完整的 Python 虚拟环境来为不同项目提供独立的 Python 执行环境,如此一来可避免多个项目间彼此共用一个全域环境使得有太多与该项目不相关的套件在环境中,增加开发环境的複杂度。或者您能够在不同环境中安装不同版本的套件,以便测试在不同的版本中所使用到套件的函式是否有不一样之处。

如下图,我们创建多个虚拟环境,用此来安装不同版本的套件以进行相容性测试,而创建出来的虚拟环境能于稍后提供给其他项目使用,减少安装及创建环境所花费冗馀的设定时间。

在创建虚拟环境时能够透过其他虚拟环境或者全域环境内已安装的套件产生 requirements 档,此档桉将可在稍后创建新的虚拟环境时作为参考,提供快速设置新的虚拟环境所需的套件清单。

三、整合 Python 套件管理员 (Package Manager)

在 Python 中有许多有用的第三方套件能够透过 pip 或者 easy_install 套件管理员安装,让您能在代码中呼叫这些套件中的函式,协助您更快的达成开发目标。而在 Visual Studio 中高度整合这些套件管理员,让您不需要输入繁琐的指令即可简单的安装套件。

如下图,可于方案总管内在欲安装套件的 Python 环境下点击滑鼠右键,即可看到安装 Python 套件的选项。

接着如下图输入您要安装的套件名称,在这裡您也可以指定版本安装,或者不指定则安装最新版本的套件。另外需要注意的是若您使用 easy_install 选项,将不会替您即将安装的套件整合至方案总管当中,如此一来将无法使用 Visual Studio 完整管理这些透过 easy_install 安装的套件。

四、IntelliSense 对 Python 完整的支持

Visual Studio 针对 Python 亦提供以往在 C#、VB、VC++ 等语言上 IntelliSense 的支持,例如:列出物件成员、函式呼叫参数与返回值资讯、快速谘询和自动完成文字等辅助功能,让您在撰写物件或者呼叫函式时能够更有信心,提高撰写效率。

下图展示 IntelliSense 功能协助列出物件中所公开的成员内容。

下图展示 IntelliSense 功能提供函式呼叫参数资讯。

另外 IntelliSense 提供快速动作,例如键入 main 后按下「T,即可帮您自动补完合适的代码区段与相关参考。

五、对 Python 使用侦错模式 (Debugging)

Visual Studio 针对 Python 支持完整侦错功能,例如在程序执行时能够暂止于中断点处,此时能检视或修改当下执行情况的区域变数以及呼叫堆叠,并能于侦错模式下使用您熟悉的重要功能让您能更简易快速的掌握程序执行的情况。

另外,Visual Studio 对 Python 支持了溷合侦错模式 (Mixed-Mode debugging),若您的 Python 代码中有使用到外部如 C/C++ 等 Native Code 并拥有该 Native Code 的原始码项目时便能进行溷合侦错模式。而与一般侦错模式一样,在 Python 外的语言仍可进入中断点改变其变数值。

相同的,您也能够于混合侦错模式下自由的跳跃至不同代码的呼叫堆叠当中进行代码及变数的巡览。

版本控制

Visual Studio 整合版本控制,其支持 Git 与 Visual Studio Team Services 版本控制,透过 Visual Studio 您现在不需要额外工具就能够直接于 Visual Studio 内对您的 Python 项目直接进行版本提交、复原、比较、检视代码历史纪录等版本控制所用到的常用功能。

六、跨平台远端侦错 (Remote Debugging)

Visual Studio 替 Python 程序加入了远端除错的能力,透过这个 Python 套件让您能够使用 Visual Studio 连接在不同的作业系统上 (如 Linux) 执行的 Python 程序。此项功能使得您在跨平台开发时更能够获得一致的开发体验与提升整体开发效率!

如下图展示 Python 程序运作在一块 Linux 嵌入式开发板上,同时在个人电脑内的 Windows 10 运行着 Visual Studio 2015,其透过 ptvsd 套件能让您远端附加至序,直接对 Linux 嵌入式开发板上运行的 Python 程序进行如您所熟悉的侦错模式。并保有完整的侦错模式功能像是区域变数检视、呼叫堆叠分析等完整侦错功能来进行程序的分析与追踪。

Visual Studio上开发Python六大功能的更多相关文章

  1. 在Visual Studio上开发Node.js程序

    [题外话] 最近准备用Node.js做些东西,于是找找看能否有Visual Studio上的插件以方便开发.结果还真找到了一个,来自微软的Node.js Tools for Visual Studio ...

  2. 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure

    [题外话] 上次介绍了VS上开发Node.js的插件Node.js Tools for Visual Studio(NTVS),其提供了非常方便的开发和调试功能,当然很多情况下由于平台限制等原因需要在 ...

  3. Smobiler 4.4 更新预告 Part 2(Smobiler能让你在Visual Studio上开发APP)

    Hello Everybody,在Smobiler 4.4中,也为大家带来了新增功能和插件(重点,敲黑板). 新增功能: 1, 企业认证用户可设置路由(即客户端可根据不同的IP地址访问不同的服务器组) ...

  4. Smobiler 4.4 更新预告 Part 1(Smobiler能让你在Visual Studio上开发APP)

    在4.4版本中,大家对产品优化的一些建议和意见进行了相应的优化和修复,同时,还新增了一些令人激动的功能和插件. 下面先为大家介绍4.4版本中Smobiler的优化和修复: 优化 1, PageView ...

  5. 使用Visual Studio 2017开发python,并在iis上部署Python Django

    作为宇宙第一IDE,怎么可以不支持python开发呢? 1.Visual Studio Installer 扩展Python开发 开始菜单中打开Visual Studio Installer,点修改. ...

  6. Smobiler 4.4已正式发布!(Smobiler能让你在Visual Studio上开发APP)

    Smobiler 4.4已经正式发布,还不快来看看?原文地址:https://www.smobiler.com/portal.php?mod=view&aid=53这次更新要感谢我们的用户,在 ...

  7. visual studio 2015 搭建python开发环境,python入门到精通[三]

    在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo, ...

  8. Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写。

    Visual Studio 2017进行Python开发环境的搭建,使用VS2017进行python代码的编写. 前提:已经安装过VS2017且进行过配置. 第一部分: Python环境的搭建: 建议 ...

  9. Mac上使用Visual Studio Code开发/调试.NET Core代码

    Mac上使用Visual Studio Code开发/调试.NET Core代码 .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今 ...

随机推荐

  1. 从零开始搭建系统1.4——MySql安装及配置

    安装环境:CentOS7 64位 ,安装MySQL5.7 1.创建mysql目录 2.在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...

  2. linux 7下已有mysql之后,如何使用

    今天在使用阿里云平台的esc时,选择的centos7系统,在安装mariadb的时候,发现系统已经自带了,然后却无法使用,在调查了之后,发现启动service的依赖件没有安装,所以安装以下依赖件. m ...

  3. 启动eclipse出现JVM terminated. Exit code=127 错误解决办法

    https://blog.csdn.net/wpzsidis/article/details/72954387 进去第二次又错

  4. PushSharp 由于远程方已关闭传输流,身份验证失败。

    前段时间用到了PushSharp给APNS发推送,但是用的时候遇见很诡异的事情,每次第一次运行的时候能成功发送到 但是接下来就无限的提示“由于远程方已关闭传输流,身份验证失败. “ 然后我就各种找原因 ...

  5. 网址URL知识

    URL由三部分组成:资源类型.存放资源的主机域名.资源文件名. URL的一般语法格式为: (带方括号[]的为可选项): protocol :// hostname[:port] / path / [; ...

  6. sqlservice对于时间的操作

    最近在写一个项目时,用到了时间的比较和时间的加减,在这里简单说一下,我也是刚接触数据库不久,如有说的不当之处望大家包涵,指正 一.时间的比较 开始的时候我比较时间用的是 Time>GETDATE ...

  7. Spring - <bean parent="xxx" 属性>

    总结 必要条件: 1.子bean必须与父bean保持兼容,也就是说子bean中必须有父bean定义的所有属性. 2.父bean必须是抽象bean或者定义lazy-init=true也就是不让bean工 ...

  8. Batch - FOR %%a %%b

    总结 %%a refers to the name of the variable your for loop will write to. Quoted from for /?: FOR %vari ...

  9. JS For 循环详解;棋盘放粮食 64;冒泡排序实例

    FOR( 初始条件:循环条件:状态改变:) { 被执行的代码块} 初始条件: 在循环(代码块)开始前执行 循环条件:定义运行循环(代码块)的条件 状态改变: 在循环(代码块)已被执行之后执行 循环可以 ...

  10. VC图片裁剪源代码

    #include <atlimage.h> int main() { CString filepathname = "D:\\1.png", filepathname1 ...