Windows中使用Python和C/C++联合开发应用程序起步(Python/C API应用)

2009-10-01 23:27:38|  分类: 学习 |举报 |字号订阅

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>

usingnamespacestd;

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 License:http://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

Windows中使用Python和C/C++联合开发应用程序起步相关推荐

  1. 如何在Windows中安装Python?

    如何在Windows中安装Python? 1. Python的安装 官网下载:https://www.python.org/downloads/windows/ 点开上面的链接,会发现有很多版本. 首 ...

  2. 在windows中安装python

    如何在windows中安装python 1.下载python 2.安装python 3.测试python是否安装成功 在学习Python编程前,需要把Python安装到你的电脑里.安装后,你会得到Py ...

  3. python环境变量配置_Python零基础入门到年薪二十万-1.1节: 在windows中安装Python

    教程引言: 该系列图文课程以及视频课程全部免费.课程会系统地讲解计算机的基础知识,Python的基础知识. 在讲解Python的高级知识中,会系统地讲解面向对象编程,并发编程,数据库编程,网络编程. ...

  4. 在Windows中搭建python开发环境与使用初步(适合初学者)

    在Windows中搭建python开发环境与使用初步 安装设置python运行环境 到网站https://www.python.org/downloads/windows/ 找到合适版本,下载. 双击 ...

  5. 【开发环境】Windows 中安装 Python 各个版本 ( 下载 Python 各版本 SDK | 安装 Python )

    文章目录 一.下载 Python 各版本 SDK 二.安装 Python 1.安装 Python 2.7 2.安装 Python 3.6.8 ( 3.7 / 3.8 / 3.9 / 3.10 安装方式 ...

  6. anaconda python2.7,安装在windows中的Python 2.7 Anaconda2

    我的Python 2环境路径:C:\Python27 C:\Python27\Scripts 我的Python 3环境路径: ^{pr2}$ 我为水蟒设定了一条环保道路C:\Users\User\An ...

  7. Windows中,python的pip换源,不生效

    这么费劲呢-- 近期发现清华源不能用了,于是开始换源. 忘记原来这么设置的了,记得有个pip.ini文件,开始百度. 大部分文章都说是在: C:\Users\admin\pip 的目录下 我看了下我的 ...

  8. windows中使用Python进行AES加密解密-文本文件加密工具

    之前的文章http://blog.csdn.net/u013578500/article/details/77905924 简单介绍了一下使用PyCrypto模块实现对字符串的加密解密,里面有提到我利 ...

  9. Windows 中 使用python 一键下载android s代码

    为了在window方便看代码,所以下载google原生android s代码,写了一段python脚本方便下载 1.  安装GIT git官网下载:Git - Downloads 安装git到如下路径 ...

最新文章

  1. UML科普文,一篇文章掌握14种UML图
  2. Oculus也陷隐私门:向Facebook发送隐私数据
  3. mybatis中的MapperAnnotationBuilder
  4. 通过100个单词掌握英语语法(十六) come
  5. php 安装测试程序,PHPUnit安装及使用示例
  6. 12个 Linux 中 grep 命令的超级用法实例
  7. qpython手机kivy库_QPython Android Kivy,从python脚本启动python脚本
  8. 函数最值题目及答案_高考数学攻克压轴题:圆锥曲线取值范围和最值问题解题模型...
  9. 【.Net】.Net操作AD域账号,获取AD用户后可以获取的属性列表 directoryEntry Properties list
  10. 如何 ping ip 加 端口
  11. python anacoda更换国内镜像源和常用软件包管理操作详细讲解(已爬坑)
  12. 论文分享(2)MASAD: A Large-Scale Dataset for Multimodal Aspect-Based Sentiment Analysis
  13. linux修改网卡名称命令,linux修改网卡名称
  14. 一键刷入twrp_努比亚Z17-Z17S-Z17mini 刷入MIUI10系统刷机教程
  15. php nginx 伪静态规则,常见PHP程序的Nginx 伪静态规则
  16. PHP: Fatal error:Call to undefined function com_create_guid()
  17. 赤兔之死高考满分作文原文及赏析
  18. 基于短时时域处理中短时能量和过零率的语音端点检测方法
  19. 2010国家节假日安排
  20. primeNG__datatable

热门文章

  1. canvas的特别棒的feature:badge!!!
  2. MaxScript 学习笔记【有转载】
  3. FBI发警告:留意联网汽车被黑客攻击风险
  4. 水题 ZOJ 3875 Lunch Time
  5. Frameless - 用于预览 iOS8 原型的浏览器
  6. 跳槽必看:产品经理面试试题汇总
  7. 开始一瓢凉水浇顶,然后慢慢的感觉良好。
  8. 异步实现,查询大量数据时的加载
  9. [转]NUnit详细使用方法
  10. HD_I Hate It