调用C语言java语言

Python语言搞开发高效是高效,但确实是在牺牲效率的基础上取得的便利,Java、C等语言可以弥补其运行效率的不足。

调用C语言

一些底层开发需要借助C语言来完成,这是常态。

WINDOWS环境C语言GCC搭建

由于.so文件是Linux系统中的,与windows系统的.dll文件相似,即是一些动态链接库文件,python 调用C语言正是调用的.so库文件,因此有极其重要的作用,这里需要将C代码编译为 .so文件,windows 环境下需要用到GCC
GCC的安装步骤如下:

  1. 为了在 Windows 上安装 GCC,需要到MinGW 的主页 www.mingw.org,进入 MinGW 下载页面,下载最新版本的 MinGW 安装程序。或者到:http://sourceforge.net/projects/mingw/files/,下载 Download mingw-get-setup.exe (86.5 kB)

  2. 运行 Download mingw-get-setup.exe ,点击”运行”,continue等,注意记住安装的目录,如 D:\MinGw,下面修改环境变量时还会用到。

  3. 修改环境变量:在系统变量 Path ,中添加MinGW的安装目录。如 XX:\MinGw\bin

  4. 在开始菜单中,点击”运行”,输入 cmd,打开命令行:输入 mingw-get,如果弹出 MinGw installation manager 窗口,说明安装正常。此时,关闭 MinGw installation manager 窗口,否则接下来的步骤会报错

  5. 在cmd中输入命令 mingw-get install gcc,等待一会,gcc 就安装成功了。如果想安装 g++,gdb,只要输入命令 mingw-get install g++ 和 mingw-get install gdb

  6. 编译为exe可执行文件:gcc xxx.c

  7. 生成.so文件: gcc xxx.c -shared -fPIC -o xxx.so

(参考自:windows下gcc的安装和使用)[https://www.jianshu.com/p/dc0fc5d8c900]

python 调用.so库文件

先写一个简单的C程序如下:

然后对其编译为.so 文件:
成功得到 .so 文件

接着在 python 中调用这个.so库文件如下

首先导入 ctypes 库,接着导入 .so库文件,然后在代码中调用 .so 库中的函数实现加法,最后打印输出正确。
以上就是简单的C语言与 python 的合作,在需要比较底层的开发时,调用C语言可以提高程序运行效率,加快速度,而不用去关心C语言库内部是如何实现的,都开发库给大家用了,再説一般人也看不懂库啊。

调用Java语言

上文中的 ctype 其实是 cpython解释器中的库,Cpython就是用C语言来实现的解释器,python 默认解释器就是 Cpython,
除此之外,还可用用另的语言来构建解释器,比如用Java语言实现的 Jython 解释器; 由 .Net语言实现的 IronPython等等。
大概原理与调用C语言差不多
先把java写的源程序编译生成 class 文件,再打包成 jar包,然后在 python 代码中像导入模块一样导入这个包,然后就可以调用它的方法了
from 包名 import 类名
最后要用jython解释器来运行

1
jython xxx.py