• 方法


    http://blog.csdn.net/dlfriend/article/details/7483520

    http://www.vimer.cn/2010/12/cc%E4%B8%AD%E8%B0%83%E7%94%A8python%E8%84%9A%E6%9C%AC2-%E9%AB%98%E7%BA%A7%E5%BA%94%E7%94%A8.html

    C/C++几乎无所不能,从功能上讲这是没错的。而从实际效用上讲则不尽然。C/C++,包括MSVC,可以开发出很漂亮的界面,但对个人却很难做到快速开发。这就需要有其他一些语言,和C/C++结合起来,联合进行应用程序开发。比如利用Python

    1.安装PythonEclipseMinGWCygwin

    Linux中的应用,网上有很多教程。但在Windows中的并不多。要想利用Python/C API进行开发。首先需要在Windows里安装Python。我推荐装Pythonxy。这里面包含了Python本身,另外还有很多广为应用的Python可选模块,而且它提供Windows下的exe安装文件。首先从http://www.pythonxy.com/download.php中下载Windows安装版。然后从中选择自己需要的模块。这里,基本可以按默认的来。为了确保以下所讲例子能很好地运行,一定选上SciPyPyQtMatplotlibgnuplotPywin32。然后在Eclipse中,至少选中EclipseCDT。在others中至少选中MinGW。上面的Select type of installcustom,下面的路径选择中,全把路径C盘改为D盘,这样,会将程序安装到D:\Program Files\pythonxy下,而将库文件和头文件等放到D:\Python25下。然后next直至安装结束。

    开发环境选用Eclipse,当然也可以选Visual Studio。但是既然Python采用的是近似于GPL的一种open source语言,而又有唾手可得强大的open source IDE Eclipse,那么为什么还要去选Microsoft这种商业软件。不过,关于在Visual Studio 2008里的应用,也会在后面提到。

    由于Python/C API使用的是GCC作为编译器,而我们之前在装Pythonxy时,已经选装了Eclipse CDTMinGW。这样我们就几乎可以应用Eclipse作为Python/C程序开发环境。只需要再装好Cygwin就行。

    http://www.cygwin.com/下载然后安装Cygwin到比如D:\cygwin,然后添加D:\cygwin\bin到环境变量(my computer---右键---àproperties----àAdvanced----àEnviroment Variables,然后选中PATH----àEdit,在上面添加D:\cygwin\bin)。打开命令行cmd,然后输入ls,若能输出路径Cygwin安装完成。输入gcc回车,若输出gcc: no input files,则说明MinGW也正确安装。接下来就可以配置Eclipse CDT了。

    2.配置Eclipse IDE for Python

    打开Eclipse CDT,在Window---àpreferences----àC/C++----àNew CDT project wizard----àMakefile Project----àBuilder Settings----àBuild command编辑框里的make改为mingw32-make。若无法修改,需要先勾掉上面的Use default build command。然后ok

    新建一个工程。从File----ànew----àProject----àC++----àC++ Project----àNext----à输入Project Name----à选择一个location----àExecutable----àHello world C++ Project----àFinish

    添加Python头文件路径。在菜单上Project----àProperties----àC/C++ General----àPaths and Symbols----àIncludes----àGNU C++----àAdd----à添加D:\Python25\include

    添加Python文件路径。同样Project----àProperties----àC/C++ General----àPaths and Symbols----àLibrary Paths----àAdd----àD:\Python25\libs

    添加Python文件。同样Project----àProperties----àC/C++ Build----àSettings----àTool Settings----àMinGW C++ Linker----àLibraries----àLibraries(-l)----àAdd: python25

    这样就对Eclipse CDT和新Project配置完毕。

    3.添加Python代码

    最简测试Python embeddedC++ program里的程序。如下

    #include "Python.h"

    #include <iostream>

     

    using namespace std;

    int draw_FromFile();

    int main(int argc, char *argv[])

    {

          cout << "!!!Hello World!!!" << endl; // prints !!!Hello World!!!

          Py_Initialize();

     

          draw_FromFile();

          cout<<"End of the program!"<<endl;

     

          Py_Finalize();

          return 0;

    }

     

    int draw_FromFile()

    {

          char *filename = "D:\\sinoid.py ";

          PyObject* PyFileObject = PyFile_FromString(filename, "r");

          PyRun_SimpleFile(PyFile_AsFile(PyFileObject), filename);

     

          return 0;

    }

    然后在D盘下创建Python文件D:\sinoid.py,其内容为

    from pylab import *

    x=arange(0,2,0.01)

    y=2*sin(2*pi*(x-1/4))

    plot(x,y)

    xlabel('x-axis')

    ylabel('y-axis')

    title(r'$y=2\sin (2\pi(x-1/4))$')

    show()

    这个python文件就是类似于MatLab里的Plot,绘制一个正弦曲线。首先保存对源文件所做的修改,然后从Eclipse菜单Project下选Bulid Project,然后可以从IDE下面console窗口看到输出:

    Build complete for project …

    Time consumed: 1531  ms.

    然后从菜单Run下选RunCtrl+F11,运行后弹出Python绘图窗口:

    Windows中的用Python和C/C++联合开发应用程序(Python/C API应用) - freetrain_sk - sk

    Matlab很相似,而且完全使用开源软件,开发快速。

    如果一定想要在Visual Studio中应用Python/C API需要注意以下几点

    1Project Property中加入了Additional Library DirectoryAdditional Include DirectoryAdditional Dependencies后,如果你是在Debug mode下,你会遇到cannot open file ‘python25_d.lib‘问题。这需要你下载Python源文件,然后自己在MSVC下编译得到python25_d.libpython25_d.dll,然后把这两个文件放到你Projectworkspace下,这才能编译链接通过。

    2、运行时会有no module named _socket problem等类似问题使得Python的部分模块无法加载从而无法实现全部功能。

    3、事实上你只有在release mode中工作才能得到Python完整的功能。这是因为你使用的是python25_d.lib,一个Debug版的Python库。

    所以,还是用Eclipse CDT吧。

     

    Reference web pages:

    Python Licensehttp://www.python.org/psf/license/

    利用Eclipse CDT建立 windows下面C++开发环境

    http://www.pc51.net/system/windows/windows2000/2006-12-21/486.html

    Windows eclipse CDT C++ MinGW

    http://bbs.xiasha.cn/redirect.php?tid=156437&goto=lastpost

    how to get python25_d.lib and python25_d.dll:http://jngxiao.wordpress.com/2008/06/06/how-to-get-python25_dlib-and-python25_ddll/

    Extending Python with C or C++:http://docs.python.org/extending/extending.html

    Building C and C++ Extensions on Windows:http://docs.python.org/extending/windows.html

    C++ 扩展和嵌入 Python: http://www.vckbase.com/document/viewdoc/?id=1540

  • 相关阅读:
    基础JavaScript练习(一)总结
    零基础JavaScript编码(三)总结
    零基础JavaScript编码(二)
    零基础JavaScript编码(一)
    响应式网格(栅格化)布局总结
    实现常见的技术产品官网的页面架构及样式布局总结
    通过HTML及CSS模拟报纸排版总结
    任务四:定位和居中问题总结
    1. Two Sum
    任务三:三栏式布局总结
  • 原文地址:https://www.cnblogs.com/dengyigod/p/2613697.html
Copyright © 2020-2023  润新知