win10py文件如何调用cpp文件

1.如何让python调用C和C++代码

要搞明白如何让python调用C/C++代码(也就是写python的extension),你需要征服手册中的<>厚厚的一章。

在昨天花了一个小时看地头晕脑胀,仍然不知道如何写python的extension后,查阅了一些其他书籍,最终在<>书中找到了教程。1. 首先要明白的是,所谓的python扩展(也就是你提供给python的c/c++代码,不一定是c/c++代码,可以是其他语言写的代码)是一个dll,并且这个dll放在本机python安装目录下的DLLs目录下(譬如我机器上的路径是:F:/Program Files/Python25/DLLs),假如我们接下来要写的扩展module名为mb,python调用的代码为:import mbmb.showMsg("Python's really amazing, I kindda love it!")2. 搭建环境,我们要使用python提供的c头文件和lib库来进行扩展的开发。

在vs 2005下点击菜单 "工具"->"选项", 打开选项对话框,选择"项目和解决方案->VC++目录", 然后在右边"显示以下内容的目录"得comboBox上选择"包含文件”,添加python的include目录(我的机器上是"F:/Program Files/Python25/include"),然后选择库文件,添加python的libs目录(我的机器上是"F:/Program Files/Python25/libs")。既然扩展是一个dll,接下来我们要建立一个“动态链接库”工程,然后开始写代码:#include //python.h是包含python一些定义的头文件,在python的include目录下/*我的python版本是2.5, 因为安装python后它没提供debug下的lib库文件,因此你必须生成release版的dll,想要生成dll版本的,你要到python官网上自己去下载python源代码,当然你可以继续生成release版本的dll,但dll中包含调试信息*/#pragma comment(lib, "python25.lib")//先不管static PyObject* mb_showMsg(PyObject* self, PyObject *args);/*如果你的扩展是mb,那么必须实现一个initmb函数,并且从dll中导出这个函数,但我们在python中调用import mb时,python会去dll里去调用extern "C" __declspec(dllexport) void initmb(){/*当调用mb.showMsg("Python's really amazing, I kindda love it!")时, 相当于你告诉python我有一个showMsg函数,我们怎么告诉python去调用我们dll里的mb_showMsg函数呢?技巧就是下面的方式,定义一个字典数据结构,key => showMsg, value =>mb_showMsg,METH_VARARGS是函数调用方式,仔细查手册吧*/static PyMethodDef mbMethods[] = {{"showMsg", mb_showMsg, METH_VARARGS},{NULL, NULL, NULL} /*sentinel,哨兵,用来标识结束*/};//告诉python我们的模块名叫mb, 模块包含的函数都在mbMethods字典里PyObject *m = Py_InitModule("mb", mbMethods);}/*接下来实现核心功能showMsg*///第一个self参数我们用不着,具体查手册,第二个参数是python传给我们的参数,它是一个python的参数tuplestatic PyObject* mb_showMsg(PyObject* self, PyObject *args){//我们的showMsg函数需要的是一个字符串参数const char* msg = NULL;/*调用特殊参数解码python传递给我们的参数,s是string,我们传递接收参数的变量地址,如果你的功能函数需要两个参数,在PyArg_parseTuple后面继续添加接受参数的变量地址,这个函数的原型是类似printf的不定参数的形式PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, 。

);*/if (!PyArg_ParseTuple(args, "s", &msg))return NULL;//调用MBint r = ::MessageBox(NULL, "hello", "Caption:Form C module", MB_ICONINFORMATION | MB_OK);//返回值return Py_BuildValue("i", r);}将上面这段混杂着大量注释的代码拷贝到你的编辑器里,然后编译生成mb.dll,修改后缀成mb.pyd,然后拷贝到python的DLLs目录下,打开idle(python的交互程序),写入代码:import mbmb.showMsg("Python's really amazing, I kindda love it!")。

2.一个cpp文件如何调用另一个cpp文件已经定义的类

例:文件test1.cpp有类class A;文件test2.cpp有类class B.

如在test2.cpp中想用A:

#include "test1.cpp"

1. a = new A,即可用a去访问A中提供的接口

2. A *a = new A;同样达到目的

当然一般的做法是将类的声明放在.h文件里,定义放在.cpp文件,然后可以直接在B类中保存一个A类的指针,那样即可实现使用A类了。

C++,这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,它是一种使用非常广泛的计算机编程语言。C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、泛型程序设计等多种程序设计风格。

它是“C Plus Plus”的简称。是继C语言之后又一种计算机编程语言,C++编程语言同时支持所有的C语言语法。C++和C相似:但C是面向过程的程序设计语言,而C++是面向对象的程序设计语言,不过C++语言保持了对C语言的兼容,也就说是在C++程序可以不用修改的插入C语言代码。

cpp是用C++语言编写的源代码文件的后缀名。它对类的强大支持可以使它编写出更优质的程序。

3.win10 codeblocks怎么配置文件

配置主题

1

首先下载主题包,

2

找到Codeblocks配置文件所在地(下面是我的配置文件所在地)。替换default.conf,当然要注意备份,注意关闭CB再执行这个操作。我的目录是:C:\Users\92303\AppData\Roaming\CodeBlocks

(AppData ,或者 Roaming请打开隐藏文件设置)

3

修改之后,我们再度打开Codeblocks,点击Setting

4

点击Editor。

5

点击Syntax highlighting -点击Color theme 修改成你想要的主题

6

修改鼠标光标颜色,Margins and Caret -> Caret 设置光标颜色

7

检查结果。

END

设置默认代码

这里以CPP为例,进入如下目录I:\CodeBlocks\share\CodeBlocks\templates\wizard\console\cpp

步骤阅读

2

打开main.cpp,修改成你想要的模板代码就可以了。

4.怎样让Python脚本与C++程序互相调用

二、Python调用C/C++1、Python调用C动态链接库 Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。

(1)C语言文件:pycall.c[html] view plain copy /***gcc -o libpycall.so -shared -fPIC pycall.c*/ #include #include int foo(int a, int b) { printf("you input %d and %d\n", a, b); return a+b; } (2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。

(3)Python调用动态库的文件:pycall.py[html] view plain copy import ctypes ll = ctypes.cdll.LoadLibrary lib = ll("./libpycall.so") lib.foo(1, 3) print '***finish***' (4)运行结果:2、Python调用C++(类)动态链接库 需要extern "C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法。不是用extern "C",构建后的动态链接库没有这些函数的符号表。

(1)C++类文件:pycallclass.cpp[html] view plain copy #include using namespace std; class TestLib { public: void display(); void display(int a); }; void TestLib::display() { cout<<"First display"<

可以用Python来写扩展,也可以用C和C++之类的编译型的语言来写扩展。Python在设计之初就考虑到要让模块的导入机制足够抽象。

抽象到让使用模块的代码无法了解到模块的具体实现细节。Python的可扩展性具有的优点:方便为语言增加新功能、具有可定制性、代码可以实现复用等。

为 Python 创建扩展需要三个主要的步骤:创建应用程序代码、利用样板来包装代码和编译与测试。(1)创建应用程序代码[html] view plain copy #include #include #include int fac(int n) { if (n < 2) return(1); /* 0! == 1! == 1 */ return (n)*fac(n-1); /* n! == n*(n-1)! */ } char *reverse(char *s) { register char t, /* tmp */ *p = s, /* fwd */ *q = (s + (strlen(s) - 1)); /* bwd */ while (p < q) /* if p < q */ { t = *p; /* swap & move ptrs */ *p++ = *q; *q-- = t; } return(s); } int main() { char s[BUFSIZ]; printf("4! == %d\n", fac(4)); printf("8! == %d\n", fac(8)); printf("12! == %d\n", fac(12)); strcpy(s, "abcdef"); printf("reversing 'abcdef', we get '%s'\n", \ reverse(s)); strcpy(s, "madam"); printf("reversing 'madam', we get '%s'\n", \ reverse(s)); return 0; } 上述代码中有两个函数,一个是递归求阶乘的函数fac();另一个reverse()函数实现了一个简单的字符串反转算法,其主要目的是修改传入的字符串,使其内容完全反转,但不需要申请内存后反着复制的方法。

(2)用样板来包装代码 接口的代码被称为“样板”代码,它是应用程序代码与Python解释器之间进行交互所必不可少的一部分。样板主要分为4步:a、包含Python的头文件;b、为每个模块的每一个函数增加一个型如PyObject* Module_func()的包装函数;c、为每个模块增加一个型如PyMethodDef ModuleMethods[]的数组;d、增加模块初始化函数void initModule()。

5.py文件如何使用

最近机器出了一点问题,

之前是在网上看其步骤的,可是现在发现,那些步骤也有一些不清楚,

自己归纳的步骤觉得比较清楚:

2.安装gnuplot:另外,plotroc是调用gnuplot进行图行的绘制的.所以呢,还得装上这个程序,不过这个程序不用进行安装,在网上下载一下,解压以后,将其放在一个固定的目录下,不过建议在C盘下新建一个目录,如tmp,然后把gnuplot放在这个文件夹下面.

3.这个时候你要使用不管是easy.py,或是grid.py,或是plotroc.py还是不行的,原因是因为这些.py文件中存放有gnuplot文件的安装路径,这个时候你就应该把其路径修改成你将gnuplot所放的那个目录.而且还得注意,这三个文件的.PY文件的gnuplot路径都要改,好像easy.py与grid.py是相互联系在一块的.所以要想用它们就最好改成如我的:c:\tmp\gnuplot\pgnuplot.另外,修改这些路径时,用写字板将这些PY文件打开是最好的了.

6.如何在深度技术Win10企业版系统下运行py文件

1、用【u深度u盘启动盘制作工具】制作u盘启动盘,插入电脑usb接口,设置好开机启动项进入u深度主菜单界面,选择“【02】u深度win8pe标准版(新机器)”并回车,

2、在u深度pe装机工具中,点击“浏览”按钮选择win10系统镜像安装在c盘中,点击确定即可。

3、程序提醒执行还原操作,勾选“完成后重启”复选框,然后点击确定,

4、接着是程序还原过程,还原成功后会重启计算机,然后进行程序安装过程,请耐心等待。

5、程序安装结束就可以进行电脑常规设置了,设置完便进入win10系统桌面,等待部署结束就可以使用了。

7.win10caffe安装后怎么使用

整了一晚上加一上午。网上关于python的记录较少,这里写一下。

这里的环境是WIN10+cuda v7.5 +cudnn v4 + opencv + pycharm+VS2013

使用的是GPU,我的GPU是titan16G+内存32G

首先是caffe的文件以及第三方库的编译,这里提供一个已经编译好的的连接,我就是从那里下好然后编译完毕的。

点击打开链接 happynear的

然后就是如何编译python接口。

1、首先先生成两个python文件,在src/caffe/proto/extract_proto.bat 里生成caffe_pb2.py 这个之后有用。

2、然后打开已经给好的caffe/buildVS2013,打开里面已经有的工程文件,正常的情况下应该是有7个工程,选中pycaffee单独作为要编译的项目。如图所示:

把pycaffe作为单启动。注意需要在release x64位下编译。

如果没有这个的话,就将这个文件夹里python文件夹中的项目加入即可。如果没有python项目,就自己建一个,将python文件夹里的cpp文件加入就可以了。

3、选择pycaffe的属性,将配置属性下的VC++目录中的包含目录和库目录填上你python所在的include和libs 再在C/C++的目录下的附加包含目录一项中添加

以我的python为例。D:/python27/Lib;D:/python/include/ 以及D:/Python27/Lib/site-packages/numpy/core/include 如果你安装了CUDNN这里可以在预处理器那里把USE_CUDNN加上,同时在LINKER的输入目录下的附加依赖库中加入cudnn的lib文件。

3、开始编译即可。这里要注意一定要和caffe、caffelib在一个项目里编译,否则会报错。

4、编译成功后会在caffe/python/caffe下生成_caffe.pyd 是打不开的

5、配置python环境:需要几个额外库

Cython>=0.19.2

numpy>=1.7.1

scipy>=0.13.2

scikit-image>=0.9.3

matplotlib>=1.3.1

ipython>=3.0.0

h5py>=2.2.0

leveldb>=0.191

networkx>=1.8.1

nose>=1.3.0

pandas>=0.12.0

python-dateutil>=1.4,<2

protobuf>=2.5.0

python-gflags>=2.0

pyyaml>=3.10

Pillow>=2.3.0

six>=1.1.0

其中numpy要装MKL版本的,不然scipy装上了BLAS不能用

leveldb没有windows版本的,不过我找到了可以使用的办法。见这个博客:

点击打开链接

如果有pip install 装不上的,可以上这个网站找 wheel文件安装就可以了

点击打开链接

6、最后把目录中python下的caffe文件夹复制到python27/Lib/site-packages就可以了。

测试的时候只需要在控制台下输入import caffe 看能载入就知道成功了:)

win10py文件如何调用cpp文件

转载请注明出处windows之家 » win10py文件如何调用cpp文件

win10

win10如何安装xbox软件

阅读(131)

本文主要为您介绍win10如何安装xbox软件,内容包括win10系统怎么安装xbox,win10系统怎么安装xbox,win10怎么安装xboxone游戏。win10xbox是什么怎么用_win10怎么玩xbox游戏首先启动电脑上的Xbox应用,点击左下角开始菜单,点击预装在windows1

win10

win10如何装quicktime

阅读(115)

本文主要为您介绍win10如何装quicktime,内容包括win10怎么安装quicktime,win10怎么安装quicktime,win10怎么安装quicktime。方法如下: 其实,win10安装quicktime的关键在于quicktime版本的选择,并不是quicktime版本越高越好,而是有版

win10

win10欢迎界面无限转圈如何修复

阅读(268)

本文主要为您介绍win10欢迎界面无限转圈如何修复,内容包括win10一直卡在欢迎界面不停转圈怎么解决,求助win10欢迎界面转圈无法进入windows,win10卡在欢迎界面,一直转圈。可能是某些程序或者硬件驱动不兼容导致的。开机后,看到Windows 10 Log

win10

win10如何添加纯英文输入发

阅读(120)

本文主要为您介绍win10如何添加纯英文输入发,内容包括Win10怎么添加英文输入法,Win10怎么添加英文输入法,怎样为Win10系统添加英文输入法。双击打开Win10的控制面板,点击添加语言。在语言窗口里,点击添加语言,在添加语言窗口上可以看到有很多

win10

win10如何兼容打开

阅读(102)

本文主要为您介绍win10如何兼容打开,内容包括win10软件怎么设置兼容模式打开,win10系统如何调出兼容性设置,win10兼容性,教您Win10兼容性怎么设置。打开设置。2、再打开更新和安全。3、再打开针对开发人员。4、选择开发人员模式(怕个人数据

win10

win10系统如何启用网络适配器

阅读(0)

本文主要为您介绍win10系统如何启用网络适配器,内容包括win10系统怎么启动网络适配器,win10系统怎样启动网络适配器,windows10无法找到网络适配器的驱动程序怎么解决。win10系统启动网络适配器,主要是右键点击左下方的开始,选择控制面板,点击

win10

win10电脑硬盘C盘如何缩小

阅读(133)

本文主要为您介绍win10电脑硬盘C盘如何缩小,内容包括win10分区c盘太大,怎么缩小,如何调整win10系统c盘大小,Win10系统下如何调整c盘分区大小。在电脑桌面左下脚开始里面进去找到“此电脑”找到计算机名称后,然后单击鼠标右键选择“管理”,即

win10

window7如何自动更新win10

阅读(137)

本文主要为您介绍window7如何自动更新win10,内容包括win7怎样自动更新到升级win10,win7怎么自动升级win10,win7怎么自动升级win10正式版。首先需要到微软的官方网站上面,登录微软官网登录之后,这里直接点击“立即加入”,加入微软预览版的试用

win10

如何卸载win10的outlook

阅读(119)

本文主要为您介绍如何卸载win10的outlook,内容包括win10怎么卸载outlook,win10系统中怎样卸载outlook,如何卸载系统自带的outlook。最简单的办法是用360安全卫士中的“windows10设置”,在windows10设置上一栏有“.更多设置”打开它,目录下有

win10

电脑win10如何桌面字体调大

阅读(250)

本文主要为您介绍电脑win10如何桌面字体调大,内容包括w10系统桌面字体大小怎么设置,win10电脑桌面字体大小怎么调整,win10怎么把电脑桌面字体变大。Win10系统桌面文本字体都是默认的,操作win10系统过程中用户发现字体都变大了,无论是菜单还是

win10

win10如何调整耳机左右均衡

阅读(135)

本文主要为您介绍win10如何调整耳机左右均衡,内容包括win10怎么将设置好的声音平衡设置为默认比例值,win10怎么调左右声道,win10耳机播放左右音量不一样大,左边大一些右边小很多,教我设置。右键点击右下角音量图标,然后选择“播放设备”;在播

win10

win10如何不让电脑进入睡眠状态吗

阅读(119)

本文主要为您介绍win10如何不让电脑进入睡眠状态吗,内容包括win10怎么设置不让电脑休眠,win10怎么设置电脑不进入睡眠模式,win10怎么设置不让电脑休眠。win10设置不让电脑休眠的方法: 在Win10桌面空白位置,点击鼠标右键,在弹出的右键菜单中,选

win10

win10如何看电脑是32位还是64位

阅读(141)

本文主要为您介绍win10如何看电脑是32位还是64位,内容包括怎么看Win10电脑是32位还是64位,win10怎样看电脑是32位还是64位,win10怎么查看电脑是32位还是64位。查看Win10电脑是32位还是64位,可以通过下面的两种方法查看:方法一:1.在w10桌面右击

win10

如何查看win10服务器用户名和密码

阅读(171)

本文主要为您介绍如何查看win10服务器用户名和密码,内容包括windows10求助如何查看登录服务器的账号和密码,windows10求助如何查看登录服务器的账号和密码,win10怎么查看用户名和密码。“控制面板”---“管理工具”---“事件查看器“---选

win10

win10修复安装系统文件

阅读(151)

本文主要为您介绍win10修复安装系统文件,内容包括windows10怎么修复系统文件,win10怎样修复损坏系统文件,Win10系统文件受损怎么办Win10修复受损文件方法。方案一:修复受损文件按下WIN+X然后选择命令提示符(管理员)2、执行命令:sfc /scannow 看

win10

win10打开bat文件显示打开方式

阅读(191)

本文主要为您介绍win10打开bat文件显示打开方式,内容包括win10设置bat文件怎么打开,win10bat文件的右键菜单“打开方式”丢失,如何修复,win10运行bat文件显示要打开其他应用。恢复.bat文件的默认打开方式。同时按住windows键和R键,在出来的

win10

win10文件显示时间不对

阅读(204)

本文主要为您介绍win10文件显示时间不对,内容包括Windows10系统时间总是不对怎么办win10电脑时间显示错误的解决方,WIN10的文件夹修改日期显示不对,QQ聊天记录时间显示也不对,要,求助win10时间显示不对怎么办。在WIN10的桌面上,然后在左下角

win10

win10复制文件夹显示磁盘被写保护

阅读(269)

本文主要为您介绍win10复制文件夹显示磁盘被写保护,内容包括复制文件的时候,出现无法复制,磁盘被写保护请去掉写保护怎么回,win10电脑系统,不能存文件到U盘,提示磁盘保护,如何关闭搜狗,复制文件时提示说磁盘被写保护,请插入另一张磁盘是怎

win10

win10目录里显示文件详细信息

阅读(126)

本文主要为您介绍win10目录里显示文件详细信息,内容包括怎么让Win10在文件夹窗口显示文件详细信息,怎么让Win10在文件夹窗口显示文件详细信息,Win10如何设置文件夹默认详细信息显示。很多win10系统电脑用户都需要将一些文件共享到项目列表

win10

文件夹删除显示被占用win10

阅读(222)

本文主要为您介绍文件夹删除显示被占用win10,内容包括无法在win10电脑中删除文件,提示被占用怎么办,为什么win10总是删除不了文件夹一直提示占用,win10提示文件被占用,无法删除,移动怎么办。这个目录应该是win7升级win10过程中的遗留目录,升

win10

win10拷贝文件要刷新才显示

阅读(320)

本文主要为您介绍win10拷贝文件要刷新才显示,内容包括电脑win10的系统,不管是删除还是复制,文件或文件夹都不变化,都,Win10系统复制或新建文件后需要刷新才会显示怎么办,win10复制粘贴后,需要刷新才能看到,怎么回事。在win10系统键盘中按WI

win10

win10设置自动搜索文件

阅读(127)

本文主要为您介绍win10设置自动搜索文件,内容包括win10文件搜索功能要按回车才能搜索,win10如何按文件类型搜索本地文件,怎么设置win10搜索默认应用。对的。在桌面找到此电脑,双击打开;2、打开后,在窗口的右上角输入你要查找的文件名,月准确越