zoukankan      html  css  js  c++  java
  • 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

    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:Python27Libsite-packagesmatplotlibackendsackend_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.

  • 相关阅读:
    字符串的不可变性--转载
    this的作用--转载
    构造函数
    根基决定一个程序员会不会被淘汰 --转载
    BAT-使用BAT方法清理Delphi临时文件
    键盘,鼠标,文件
    画布.画笔.画刷
    Delphi外挂开发网站
    教程-经典Delphi教程网
    教程-Delphi各版本与工具下载地址
  • 原文地址:https://www.cnblogs.com/cslxiao/p/3775454.html
Copyright © 2011-2022 走看看