苏州高端做网站,coupang入驻条件2022,网站怎样做的,网络营销是网上销售吗Python中使用C/C模块有许多工具#xff0c;大名鼎鼎的有SWIG(英文意思为#xff1a;豪饮)、SIP(英文意思为#xff1a;啜饮#xff0c;小口的喝)#xff0c;还有 boost.python等。其中SIP是从SWIG发展而来#xff0c;专为Python调用C/C模块使用的(看SIP的命名就能看出来模块有许多工具大名鼎鼎的有SWIG(英文意思为豪饮)、SIP(英文意思为啜饮小口的喝)还有 boost.python等。其中SIP是从SWIG发展而来专为Python调用C/C模块使用的(看SIP的命名就能看出来很有意思的)。SIP的使用方法在官网的SIP Reference Guide中有介绍不过那是针对至少有点经验的人员对初学者来说想十分钟快速上手还是有点难度的。这里就介绍下本人在使用SIP总结的需要注意的地 方。(本着方便大家方便自己的原则欢迎转载无需征得本人同意但请注明出处最好是原文连接图个人气谢谢)前提本机上要装了Python、GCC(Windows下可以用MinGW在我的Eclipse下配置CDT一文中有关于MinGW的安装介绍)。并把python.exe和MinGW下的bin文件路径添加到环境变量中。第一部分安装SIPWindows将Riverbank上的sip的zip格式的代码包下载将其解压到C:\Python27中那么现在sip的文件夹路径为C: \Python27\sip-4.13.2\sip-4.13.2(你也可以将其解压到任何一个文件夹中但这里为了叙述方便就解压到我电脑上的 Python的文件夹中)。打开Windows的cmd命令行输如cd C:\Python27\sip-4.13.2\sip-4.13.2跳转到sip文件夹下。输入python configure.py --platform win32-g。进行配置显示结果如下再完成上一步后输入mingw32-make接着输入mingw32-make install。若无意外SIP就安装完成了。常见问题若是你的电脑上之前安装了Eclipse等其他软件而将mingw32-make改成了make那么就要将上面的mingw32-make命令改为make来使用。有个朋友说他按上面的方法使用make总是报错仔细一问才发现他的电脑上安装了Embacardero的RAD开发工具也就是熟知的 Delphi和C Builder的开发工具。在安装了这个工具后在命令行中输入make使用的总是Embacardero的 C Builder的make。根据亲测即使在配置的时候使用python configure.py --platform win32-borland命令进行配置对Emcarbadero的make也是无效的。这个配置命令产生的make文件只是用于老版本的 Borland C Builder的make命令。若要使用微软的VC的nmake就要在配置时使用命令python configure.py --platform win32-msvc其中win32-msvc使用的是VC6的nmakewin32-msvc.net使用的是VC2003的 nmakewin32-msvc2005使用的是VC2005的nmakewin32-msvc2008使用的是VC2008的nmake。根据 --show-platforms命令显示的结果SIP的配置暂不支持VC2010和VS11下的nmake。若想知道SIP支持的所有平台和编译器 可以在命令行中使用python configure.py --show -platforms命令来查看。LinuxLinux下的SIP安装与之类似甚至更简单Linux的发行版如Ubuntu都自动安装了python和gcc无需配置环境变量。所以只要在官网上下载SIP的Linux下的tar.gz格式的代码包解压到某个目录中。然后在终端中进入该目录依次输入python configure.py --platform linux-gmake;make install即可。在Python中使用C/C写的函数。1、首先编写个C文件功能是将两个数字相加并输出命名为add.c这个将成为在Python中的模块名如下/* File : add.c */int add(int x, int y){int g;g x y;return g;}2、接着手工编写SIP文件在使用SIP的过程中一个C/C的源码文件必须对应一个同名的sip文件命名为add.sip如下/* Define the SIP wrapper to the add library. */%Module(nameadd, languageC)int add(int x, int y);如果是源程序是用C写的那么这里的(nameadd, languageC)就可以省去。这里的C源码文件没有头文件所以对应的sip文件很简单。如果C/C的源码是实现部分在实现部分还包括接口部分即头文件。那么在相应的sip文件中需要用%TypeHeaderCode#include %End来包含相应的头文件。sip文件与正式的C/C头文件相似但与之不同的是sip文件不包含相应的头文件的私有成员变量(private或 protected)。更详细的sip文件编写规范请参考riverbank官方网站上的说明文档SIP Reference Guide。3、编译C文件。按照官网的说法是编写configure.py但别急先做一些必不可少的工作。在命令行将add.c编译成add.o文件输入gcc -c add.c接着将这一步生成的add.o文件生产库文件ar -r libadd.a add.o这两步在这里是为一个单独的C模块测试的如果是大量的C模块可以用一个makefile一并批量完成这也是初学者容易模糊的地方。记住需要将libadd.a文件复制到Python文件夹下的libs文件夹中。也可以将源代码直接编译成dll命令为4、手工编写configure.py文件同样这个configure文件的编写也不难看下规范就会了(要会鸟语。。。)。这里我们模仿官网的模版写一个自己的configure.py。import osimport sipconfig# The name of the SIP build file generated by SIP and used by the build# system.build_file add.sbf# Get the SIP configuration information.config sipconfig.Configuration()# Run SIP to generate the code.os.system( .join([config.sip_bin, -c, ., -b, build_file, add.sip]))# Create the Makefile.makefile sipconfig.SIPModuleMakefile(config, build_file)# Add the library we are wrapping. The name doesnt include any platform# specific prefixes or extensions (e.g. the lib prefix on UNIX, or the# .dll extension on Windows).makefile.extra_libs [add]# Generate the Makefile itself.makefile.generate()5、运行configure.py会生成一个makefile文件(直接用IDLE打开configure.py按F5运行或者命令行用python configure.py运行都可以)。这里有个诡异的地方有几个朋友在这一步会报错说找不到add.sbf文件而add.sbf文件应该是configure.py运行时调用相关函数自 动产生的。若出现这个问题请重新编译SIP。如果是Windows下最好是在另一台机器上拷贝一个完整的包含能正常的SIP的Python文件夹到 有问题的机器上将问题Python文件夹覆盖掉。6、在命令行输入make(这里会生成一个关于函数的警告不用管它我们是用来测试的。。。其他的应该没什么问题若有问题请检查前面的步骤)生成add.pyd文件。然后再输入make install(将add.pyd文件装入到Python的Lib文件夹下的sit-packages文件夹中)。7、打开Python 的命令行进行测试import addadd.add(4, 7)11(原谅我这么烂的模块名。。。)提示(1)、这些文件可以放到Python的文件夹下新建的文件夹中(所有的操作在这个目录下的命令行窗口中使用)。注意Python的父文件夹名不能有空格否则会无法读取库文件。(2)、使用MinGW需要把~\MinGW\bin添加的环境变量中(Linux下则不必)这样才能使用gcc、make和ar等工具。