来自Andrew Delong的博客

http://andrewdelong.wordpress.com/2012/11/03/pythonc-in-visual-studio-an-alternative-to-matlabmex/

I spent much of my PhD working in Matlab with C++ MEX extensions. Debugging MEX extensions is frustrating: either you resort to print statements, or you wait for the IDE to launch a new Matlab every time you make a change.

With Microsoft’s release of Python Tools for Visual Studio, I decided to switch to Python with C++ extensions.


The integration is exactly what I was looking for: full debugging, auto-complete, real-time syntax checking, python console (like Matlab), and profiling (needs Ultimate Edition of Visual Studio). Python can load C++ extensions built with Visual Studio 2010/2012 just fine, even though Win64 Python is itself compiled with Visual Studio 2008; the new compilers are amust for using the wonderful features of C++11 .

Getting a Matlab-like setup for Win64 takes a few steps. For Linux, one has the option of simply installing Free 64-bit EPD Python,  a Python distribution that bundles several packages for scientific computing (plotting, matrices, Intel MKL). 64-bit EPD does not seem to be free for Windows users. So, the rest of this post is a guide to set things up from scratch.

1. Install Python

  • Download Python 2.7 X86-64 and install it to the default location.
  • Make sure C:\Python27 is in your system path: open a command-prompt and run “python”; use “quit()” to exit the interpreter.
  • Add PYTHON_PATH=C:\Python27 to your system environment variables. (This will be convenient when setting up Visual Studio projects that link with Python, e.g. a C/C++ extension module).

2. Install Numpy-MKL and SciPy

3. Install Matplotlib

  • Download the latest Matplotlib-win-amd64-python2.7 and install it.
  • Test it by starting a python interpreter and running the commands
          import matplotlob
    import matplotlib.pyplot as plt
    plt.plot([1,2,2,3])
    plt.show()

    You should see a Figure window pop up.

  • [Optional] If you are annoyed by the 4-pixel grey margin around all figure windows, openC:\Python27\Lib\site-packages\matplotlib\backends\backend_tkagg.pyand find the place where it says “borderwidth=4“, then replace this
    with “borderwidth=0, highlightthickness=0“.

4. Install Visual Studio

If you are a student or staff at a university, you can get a free license for Visual Studio Ultimate Edition (2010 or 2012) by getting a Microsoft DreamSpark account through your department. However, these steps should work just fine with the free Express Edition of Visual Studio as well. (Note that Python/C++ speed profiling is only available in Ultimate Edition).

5. Install Python Tools for Visual Studio

Download Python Tools for Visual Studio and install. Be sure to get the version for the IDE you want to use (i.e. 2010 or 2012).

To see the new Python console, go to View->Other Windows and select it. You can dock the new tool window with the rest.

Also enable the Python Debug Interactive window in Debug->Windows.

Notes

As of PTVS 2.0 Beta, mixed C++/Python debugging is available in VS 2012 or later. By default, breakpoints will only work in either Python or C++ during any one debugging session — if you debug using a Python “startup project”, breakpoints in your C++ code will be ignored for that debug session; if you debug a C++ “startup project”, your Python breakpoints will be ignored. If you want mixed debugging, you must explicitly enable it in your Python project’s Debug settings (VS2012 only).

Tip #1: Python code will run slower when debugging; I find Ctrl+F5 (run without debugging) immensely useful when I’m not planning to hit any breakpoints.

Tip #2: By default Visual Studio will break when Python exceptions are thrown. This is a problem because many Python modules use exceptions as a means of ‘normal’ control flow (bad!), so you’ll want to tell the debugger to let most exceptions slide. Go to Tools->Options->Debugging and select “Enable Just My Code”.

Then go to Debug->Exceptions and uncheck the “Thrown” column for Python

If a package imports “without debugging” but breaks when you run it “with debugging” then you may even have to disable breaking on a User-unhandled exception.

Python/C++ in Visual Studio: An Alternative to Matlab/MEX的更多相关文章

  1. Python tools for Visual Studio插件介绍

          Python tools for Visual Studio是一个免费开源的VisualStudio的插件,支持 VisualStudio 2010,2012与2013.我们想要实现的是: ...

  2. windows下使用python操作redis(Visual Studio Code)

    1.编辑工具: Visual Studio Code(windows环境) 2.redis服务器:这里用了远程连接,需要配置redis.conf. (1)注释 #bind 127.0.0.1 (2)设 ...

  3. Building Python 2.7.10 with Visual Studio 2010 or 2015 - Google Chrome

    您的浏览器(Chrome 33) 需要更新.该浏览器有诸多安全漏洞,无法显示本网站的所有功能. 了解如何更新浏览器 × p-nand-q.com C++  Python  Programming  L ...

  4. Visual Studio 2012 Ultimate 上安装 Python 开发插件 PTVS

    1.我的环境 操作系统:32位 Win7 旗舰版 Service Pack 1 VS版本:Microsoft Visual Studio Ultimate 2012 版本 11.0.50727.1 R ...

  5. Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS

    PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools fo ...

  6. Python 在Visual studio 中做单元测试进行TDD开发

    Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging ...

  7. visual studio 2015使用python tools远程调试maya 2016

    步骤: 1. 去https://apps.exchange.autodesk.com/MAYA/en/Home/Index搜索Developer Kit并下载,maya 2016可以直接点击这里下载. ...

  8. Python+Visual Studio

    一直在找一个比较好的Python IDE,无奈找来找去都不太好用,由于经常用Visual Studio,所以很希望找到一个能够在VS中的Python扩展.今天发现了一个很给力的VS扩展,可以在VS中方 ...

  9. 【Python】- 如何使用Visual Studio 2013编写python?

    安装Visual Studio 2013 1.VS2013下载安装略 安装python2.7 1.从官网下载python2.7,下载地址:https://www.python.org/getit/  ...

随机推荐

  1. 记录一个webstorm的设置或者说小技巧

    在 html 的元素中,如果输入属性,默认会填充 引号,在 react 书写中非常不方便. 其中的JSX很多时候是不需要 quotation 的,只是需要一个 括号 {} 即可. 自己找了下webst ...

  2. java 跳出多重循环

    public class Main { public static void main(String[] args) { System.out.println("start"); ...

  3. 关于解决'\u'开头的字符串转中文的方法

    如果字符串是”\u70ed\u95e8\u94ed\u6587\u63a8\u8350”这种形式的字符串: python3的解决办法:字符串.encode(‘utf-8’).decode(‘unico ...

  4. 【转】禁用chrome firefox 的 WebRTC功能防止真实IP泄漏

    无论是使用VPN还是其它代理方式,很多时候我们不希望暴露自己的真实IP,且一直以来我们认为VPN是安全的,所有流量都会走VPN. 但最近暴露出一个WebRTC特性,会暴露我们的真实IP.适用浏览器:c ...

  5. essential

    essential - 必应词典 美[ɪ'senʃ(ə)l]英[ɪ'senʃ(ə)l] n.要点:要素:实质:必需品 adj.完全必要的:必不可少的:极其重要的:本质的 网络基本的:必需的 变形复数: ...

  6. rockchip 硬解码相关

    http://opensource.rock-chips.com/wiki_Mpp MPP You can get mpp source from git. git clone -b release ...

  7. web文件上传,带进度条

    原生ajax上传带进度条 (百分比) <%@ page language="java" contentType="text/html; charset=UTF-8& ...

  8. Linux 限制IP——/etc/hosts.allow和/etc/hosts.deny文件【转】

    就像是 限制特定IP来访 想法 看起来通常的做法是利用hosts的拒绝设置,而它的设置是针对某一个具体的进程,具体的服务,在这里就是sshd了 看起来设置一个网段使用的是 x.x.x.0/24 后面加 ...

  9. 磁盘性能指标--IOPS与吞吐量

    磁盘性能指标--IOPS----------------------------------------------------------        IOPS (Input/Output Per ...

  10. 卸载node和npm

    sudo npm uninstall npm -g yum remove nodejs npm -y