Python/C++ in Visual Studio: An Alternative to Matlab/MEX
来自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
- Download Numpy-MKL 64-bit and install it.
- Download SciPy 64-bit and install it.
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的更多相关文章
- Python tools for Visual Studio插件介绍
Python tools for Visual Studio是一个免费开源的VisualStudio的插件,支持 VisualStudio 2010,2012与2013.我们想要实现的是: ...
- windows下使用python操作redis(Visual Studio Code)
1.编辑工具: Visual Studio Code(windows环境) 2.redis服务器:这里用了远程连接,需要配置redis.conf. (1)注释 #bind 127.0.0.1 (2)设 ...
- Building Python 2.7.10 with Visual Studio 2010 or 2015 - Google Chrome
您的浏览器(Chrome 33) 需要更新.该浏览器有诸多安全漏洞,无法显示本网站的所有功能. 了解如何更新浏览器 × p-nand-q.com C++ Python Programming L ...
- Visual Studio 2012 Ultimate 上安装 Python 开发插件 PTVS
1.我的环境 操作系统:32位 Win7 旗舰版 Service Pack 1 VS版本:Microsoft Visual Studio Ultimate 2012 版本 11.0.50727.1 R ...
- Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS
PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools fo ...
- Python 在Visual studio 中做单元测试进行TDD开发
Unit Tests Steve Dower edited this page on 14 Jul · 3 revisions Pages 38 Home Azure Remote Debugging ...
- visual studio 2015使用python tools远程调试maya 2016
步骤: 1. 去https://apps.exchange.autodesk.com/MAYA/en/Home/Index搜索Developer Kit并下载,maya 2016可以直接点击这里下载. ...
- Python+Visual Studio
一直在找一个比较好的Python IDE,无奈找来找去都不太好用,由于经常用Visual Studio,所以很希望找到一个能够在VS中的Python扩展.今天发现了一个很给力的VS扩展,可以在VS中方 ...
- 【Python】- 如何使用Visual Studio 2013编写python?
安装Visual Studio 2013 1.VS2013下载安装略 安装python2.7 1.从官网下载python2.7,下载地址:https://www.python.org/getit/ ...
随机推荐
- 数据结构实验之查找六:顺序查找(SDUT 3378)
(不知道为啥开个数组就 TLE .QAQ) #include <stdio.h> #include <stdlib.h> #include <string.h> / ...
- Deepin-TIM或Deepin-QQ调整界面DPI字体大小的方法
Deepin-TIM或Deepin-QQ调整界面DPI字体大小的方法 env WINEPREFIX="/home/landv/.deepinwine/Deepin-QQ" deep ...
- Pytest权威教程25-配置
目录 配置 命令行选项和配置文件设置 初始化:确定ROOTDIR和INIFILE 寻找rootdir 如何更改命令行选项默认值 内置的配置文件选项 返回: Pytest权威教程 配置 命令行选项和配置 ...
- Pytest权威教程02-Pytest 使用及调用方法
目录 Pytest 使用及调用方法 使用python -m pytest调用pytest 可能出现的执行退出code 获取版本路径.命令行选项及环境变量相关帮助 第1(N)次失败后停止测试 指定及选择 ...
- Bootstrap select多选下拉框实现代码
前言 项目中要实现多选,就想到用插件,选择了bootstrap-select. 附上官网api链接,http://silviomoreto.github.io/bootstrap-select/. 没 ...
- 使用xshell-ssh连接服务器,报错:Xshell Socket error Event: 32 Error: 10053
XShell连接CentOS系统时,报出Xshell Socket error Event: 32 Error: 10053..错误 有点烦人.. 操作:用SSH工具连接linux电脑出现的问题:Re ...
- vue element-UI 多个 select 回显成功,但是选中无反应
参考文章 vue开发(四)element的select下拉框设定初值后,不能重新选择的问题 参考文章 element模态框dialog中的select组件中选中无反应 原因 下拉框数据是循环别的接口得 ...
- T-MAX-测试总结
一.项目相关: 作业相关 具体描述 所属班级 2019秋福大软件工程实践Z班 作业要求 团队作业第五次-项目冲刺 作业正文 T-MAX组--测试总结 团队名称 T-MAX小组 作业目标 将团队的项目做 ...
- python中字符截取[-1]、[:-1]、[::-1]、[n::-1]等使用方法的详细讲解(建议留存)
python涉及字符截取的详细功能讲解: str = ' print("str[0:3]:"+str[0:3]) # 正向截取字符串 0~3(不包含3) 即 012 print(& ...
- 咏南跨平台中间件支持LINUX和WINDOWS插件架构
咏南跨平台中间件支持LINUX和WINDOWS插件架构