Go 1.5发布了,其中包含了一个特性:可以编译生成动态链接库,经试验,生成的.so文件可以被python加载并调用。下面举个例子:

先写一个go文件main.go:

package main

import "C"

//export Sum
func Sum(a, b int) int {
return a + b
} func main() {}

然后编译go build -buildmode=c-shared -o sum.so main.go,会得到一个sum.so和一个sum.h。然后用下面的python代码就可以调用Go代码中的Sum()函数了:

#!/usr/bin/env python
import ctypes lib = ctypes.CDLL('./sum.so')
print lib.Sum(7, 11)

有了这个机制,理论上来说,就可以用Go来构建更有用的python模块了

python调用Go代码的更多相关文章

  1. Python调用Java代码部署及初步使用

    Python调用Java代码部署: jpype下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype 下载的时候需要使用Chrome浏览器进行下载 ...

  2. 如何实现Python调用C代码--python与C之间如何通信(swig)

    转载: https://www.zhihu.com/question/23003213 1. C代码如何调用Python 1.1 test #include <Python.h> int ...

  3. python 调用 java代码

    一.JPype简述 1.JPype是什么? JPype是一个能够让 python 代码方便地调用 Java 代码的工具,从而克服了 python 在某些领域(如服务器端编程)中的不足. 2.JPype ...

  4. 转python调用Go代码

    Go 1.5发布了,其中包含了一个特性:可以编译生成动态链接库,经试验,生成的.so文件可以被python加载并调用.下面举个例子: 先写一个go文件main.go: package main imp ...

  5. python调用Java代码,完毕JBPM工作流application

    1.缘由 有一庞大Python django webproject,要引入工作流引擎,像OA一样.方便的流程控制与管理.Python或django关于工作流的开源插件,稀少,并且弱爆了,终于选用jav ...

  6. python调用c代码2

    1.生成动态链接库 [root@typhoeus79 c]# more head.c #include <stdio.h> #include <stdlib.h> typede ...

  7. python调用c代码

    Linux环境下使用python调用C的printf例子: #!/usr/bin/env python2.7 #-*- coding:utf-8 -*- from ctypes import * de ...

  8. python调用java代码 java虚拟机(jvm)

    1.新建com文件夹,在里面新建 fibnq.java package com; public class fibnq { public fibnq(){} public int fb(int n){ ...

  9. python 调用js代码

    Python2   安装pyv8 pip install-egit://github.com/brokenseal/PyV8-OS-X#egg=pyv8 from pyv8 import PyV8 c ...

随机推荐

  1. Android 进阶11:进程通信之 ContentProvider 内容提供者

    学习启舰大神,每篇文章写一句励志的话,与大家共勉. When you are content to be simply yourself and don't compare or compete, e ...

  2. CRC-16校验原理

    最详细易懂的CRC-16校验原理(附源程序) 1.循环校验码(CRC码): 是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定. 2.生成CRC码的基本原理: 任意一 ...

  3. RIPng 知识要点

    RIPng  --------------------------------------------------------- UDP:521 多播地址:FF02::9 -------------- ...

  4. thunderbird 设置 邮件回复时内容在上方显示

    1 . 编辑->属性 2.选择当前账户,在弹出窗体的右下角 选择 管理标示 ,在弹出窗中选择编辑 3.在弹出标识设置窗体中选择 编写&地址簿 选项卡选择 在引用内容之前回复

  5. ansible playbook 使用

    ansible playbook 格式是json  yaml   1. 执行方法 ansible-playbook deply.yml 2. playbook 格式 关键字 hosts 主机ip 主机 ...

  6. 【Spring】Junit加载Spring容器作单元测试(整理)

    [Spring]Junit加载Spring容器作单元测试 阅读目录 >引入相关Jar包 > 配置文件加载方式 > 原始的用法 > 常见的用法 > 引入相关Jar包 一.均 ...

  7. MongoDB高级查询用法大全 (转)

    http://www.cnblogs.com/t2xingzhe/p/3555268.html

  8. ActiviMQ(1)

    1. ActiviMQ是实现JMS接口和规范的消息中间件(Provider), 2. JMS,Java Message Service, java消息服务,是JavaEE中的一个技术 3. JMS规范 ...

  9. SERDES高速系统(二)

    抖动.容忍度与功耗 前面我提到SERDES的最终性能要用传输速率和传输距离考核.使用眼图可以形象化地衡量SERDES的收发性能,但是更为精确的参数化衡量手段是抖动(Jitter).容忍度(Tolera ...

  10. mongodb配置和基本操作

    MongoDB3.0新特性WiredTigerMMAPv1可插拔引擎API基于web的可视化管理工具 查看版本号mongod --version启动数据库 mongod --dbpath $dbpat ...