python调用so

1.python 怎么调用so文件

当需要采用调用c++的程序的时候,需要对原有的数据加一个extern "C"封装一下即可。

采用g++编译的代码也需要的,原因可能是因为c++编译器编译后的二进制so文件中,对c++的函数进行了重新的命名导致的。

extern "C" {

Foo* Foo_new(){ return new Foo(); }

void Foo_bar(Foo* foo){ foo->bar(); }

}

以下两个网页又更详细的介绍

/questions/145270/calling-c-c-from-python

最后需要补充的一个问题是:当我调用so文件的时候,会发生一个有趣的现象:

我把python放到streaming找运行的时候,发现streaming始终查找不到so,但是数据却是被上传到hadoop的对应的work目录下。

后来定位到原因:

是python加载动态库方面是默认从系统lib库上查找库文件。

我的目录在当前目录下,所以需要从libdy.so变为./libdy.so

2.如何把cv.so添加到python引用

Python是解释性语言, 底层就是用c实现的, 所以用python调用C是很容易的, 下面就总结一下各种调用的方法, 给出例子, 所有例子都在ubuntu9.10, python2.6下试过1. Python 调用 C (base)

想在python中调用c函数, 如这儿的fact

#include <Python.h>

如有疑问追问,如满意记得采纳,

如果有其他问题也可点我名字向我求助

答题不易,

如果没有回答完全,请您谅解,

请采纳最快回答的正确答案!!谢谢!

3.python程序py文件能做成so文件吗

可以

一、环境准备

安装cython,以及gcc编译环境

wget get-pip.py

python get-pip.py

pip install cython

yum install -y gcc python-devel

二、编写测试脚本

test.py,内容如下

import os

def test():

print os.path.realpath('.')

三、将其拷贝到python系统路径

/usr/lib/python2.7/site-packages/test

在test目录下创建__init__.py, 与 test.py 的文件

test.py 上面内容如上所示

四、脚本测试

python

>>> import lyh.test

>>> lyh.test.test()

五、编译so文件

以下操作均在 /usr/lib/python2.7/site-packages/test 路径下执行

1. cython test.py

2. gcc -c -fPIC -I/usr/include/python2.7/ test.c

3. gcc -shared test.o -o test.so

六、验证so文件的可用性

1. 移除/usr/lib/python2.7/site-packages/test/test.py 文件,只保留 test.so文件

test

├── __init__.py

└── test.so

2.

python

>>> import test.test

>>> test.test.test()

可以执行

验证完成

七、使用setup.py 编译so

1. 编写setup.py文件,位于/usr/lib/python2.7/site-packages/test,内容如下:

from distutils.core import setup

from Cython.Build import cythonize

setup(

ext_modules = cythonize("test.py")

)

2.然后运行

setup.py build_ext --inplace

4.python程序py文件能做成so文件吗

可以

一、环境准备

安装cython,以及gcc编译环境

wget get-pip.py

python get-pip.py

pip install cython

yum install -y gcc python-devel

二、编写测试脚本

test.py,内容如下

import os

def test():

print os.path.realpath('.')

三、将其拷贝到python系统路径

/usr/lib/python2.7/site-packages/test

在test目录下创建__init__.py, 与 test.py 的文件

test.py 上面内容如上所示

四、脚本测试

python

>>> import lyh.test

>>> lyh.test.test()

五、编译so文件

以下操作均在 /usr/lib/python2.7/site-packages/test 路径下执行

1. cython test.py

2. gcc -c -fPIC -I/usr/include/python2.7/ test.c

3. gcc -shared test.o -o test.so

六、验证so文件的可用性

1. 移除/usr/lib/python2.7/site-packages/test/test.py 文件,只保留 test.so文件

test

├── __init__.py

└── test.so

2.

python

>>> import test.test

>>> test.test.test()

可以执行

验证完成

七、使用setup.py 编译so

1. 编写setup.py文件,位于/usr/lib/python2.7/site-packages/test,内容如下:

from distutils.core import setup

from Cython.Build import cythonize

setup(

ext_modules = cythonize("test.py")

)

2.然后运行

setup.py build_ext --inplace

python调用so

转载请注明出处编程代码网 » python调用so

资讯

submitpython

阅读(7)

本文主要为您介绍submitpython,内容包括python爬虫怎么处理submit,submittext3里的Python.zip怎么用来编译Python?,Python问题:findElement()。问题:怎样使用表单 forms解决:web.form模块提供支持创建,校验和显示表单。这里是一个新用户注册的

资讯

python.any

阅读(8)

本文主要为您介绍python.any,内容包括pythonanyall有什么用,pythonanyall有什么用,pythonint什么意思。all是如果iterable的所有元素不为0、、False或者iterable为空,all(iterable)返回True,否则返回Fa

资讯

python执行速度

阅读(5)

本文主要为您介绍python执行速度,内容包括Python语言为什么执行速度相当慢不是一般的慢,python运行速度慢怎么办,Python执行速度慢只是因为它是解释型语言吗。java和c都是编译型语言,一个是解释型语言。编译型语言在程序执行之前,有一个单独

资讯

python并发处理

阅读(6)

本文主要为您介绍python并发处理,内容包括如何使用Python实现并发编程,如何在Python中编写并发程序,Python几种并发实现方案的性能比较。多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于解决并发的工具(JS程序员请回避),使用多线

资讯

python的效率低

阅读(5)

本文主要为您介绍python的效率低,内容包括python为什么效率低,python为什么效率低,Python语言运行效率低意味着什么。当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间;另一个是运行效率,这

资讯

python灰帽子pdf

阅读(5)

本文主要为您介绍python灰帽子pdf,内容包括python灰帽子看之前需要什么基础,python灰帽子看之前需要什么基础,我想成为一名黑客,我在学python,可是里面讲的多是游戏设计,能否。学习是循序渐进的过程最常见的有两本python和黑客相关的书《py

资讯

pythondistribute

阅读(5)

本文主要为您介绍pythondistribute,内容包括pythondistribute怎么安装,求助python2.7.9的distribute安装问题,注意,选取pythonsetuptools而非pythondistributeUbun。首先配置安装好各种python3运行编译环境,然后在https://去掉中间的中文pypi

资讯

mac卸载python

阅读(6)

本文主要为您介绍mac卸载python,内容包括Mac上的Python怎么卸载,Mac上的Python怎么卸载,mac上怎么卸载python。Sublime Text 2 依赖这个路径,所以可能无法启动。解决方法:从官方下载Python2.x,安装,然后做一个软链接前提:2.6

资讯

fedora安装python

阅读(7)

本文主要为您介绍fedora安装python,内容包括fedora15下python怎么安装,fedora15下python怎么安装,fedora如何运行python。1.下载源代码 http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz22

资讯

pythonforrhino

阅读(6)

本文主要为您介绍pythonforrhino,内容包括pythonforRhino中,not和None的区别,请问谁有grasshopper里的pythonforrhino和starling?,如何用pytho写rhino文件。没理解错的话。。应该只是Python的基本语法吧。not是逻辑运算符,表示逻辑非。None

资讯

查看python版本的命令

阅读(6)

本文主要为您介绍查看python版本的命令,内容包括怎么看自己电脑里的python版本,如何查看python的当前版本号,如何查看python版本。对于一个python新手来说,查看python语言的版本号可能是必须会做的操作,那么在linux/unix/windows系统下如何来

资讯

python的虚拟主机

阅读(6)

本文主要为您介绍python的虚拟主机,内容包括哪些支持python的虚拟主机值得推荐,请问哪有支持modpython的虚拟主机,目前国内需要Python虚拟主机的多吗。九州我以前买过一个月,但存在的安全问题不得不考虑.九州的确可以支持python,php,perl,客

资讯

pythonwindows环境搭建

阅读(8)

本文主要为您介绍pythonwindows环境搭建,内容包括怎么搭建windowspython环境,如何快速地在windows上部署Python开发环境,包括各种常用的第三方,如何在windows下搭建python的IDE开发环境。Python科学计算的瑞士军刀Anoaconda 安装与配置Pyth

资讯

arcgispython开发

阅读(4)

本文主要为您介绍arcgispython开发,内容包括怎么用python开发arcgis,arcgis可以用python开发吗,GIS+Python的开发经验值得分享。在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用。在ArcGIS中可以将用写的Python代码导入到Tool

资讯

submitpython

阅读(7)

本文主要为您介绍submitpython,内容包括python爬虫怎么处理submit,submittext3里的Python.zip怎么用来编译Python?,Python问题:findElement()。问题:怎样使用表单 forms解决:web.form模块提供支持创建,校验和显示表单。这里是一个新用户注册的

资讯

python.any

阅读(8)

本文主要为您介绍python.any,内容包括pythonanyall有什么用,pythonanyall有什么用,pythonint什么意思。all是如果iterable的所有元素不为0、、False或者iterable为空,all(iterable)返回True,否则返回Fa

资讯

python执行速度

阅读(5)

本文主要为您介绍python执行速度,内容包括Python语言为什么执行速度相当慢不是一般的慢,python运行速度慢怎么办,Python执行速度慢只是因为它是解释型语言吗。java和c都是编译型语言,一个是解释型语言。编译型语言在程序执行之前,有一个单独

资讯

python并发处理

阅读(6)

本文主要为您介绍python并发处理,内容包括如何使用Python实现并发编程,如何在Python中编写并发程序,Python几种并发实现方案的性能比较。多线程几乎是每一个程序猿在使用每一种语言时都会首先想到用于解决并发的工具(JS程序员请回避),使用多线

资讯

python的效率低

阅读(5)

本文主要为您介绍python的效率低,内容包括python为什么效率低,python为什么效率低,Python语言运行效率低意味着什么。当我们提到一门编程语言的效率时:通常有两层意思,第一是开发效率,这是对程序员而言,完成编码所需要的时间;另一个是运行效率,这

资讯

python灰帽子pdf

阅读(5)

本文主要为您介绍python灰帽子pdf,内容包括python灰帽子看之前需要什么基础,python灰帽子看之前需要什么基础,我想成为一名黑客,我在学python,可是里面讲的多是游戏设计,能否。学习是循序渐进的过程最常见的有两本python和黑客相关的书《py

资讯

pythondistribute

阅读(5)

本文主要为您介绍pythondistribute,内容包括pythondistribute怎么安装,求助python2.7.9的distribute安装问题,注意,选取pythonsetuptools而非pythondistributeUbun。首先配置安装好各种python3运行编译环境,然后在https://去掉中间的中文pypi

资讯

python右移

阅读(5)

本文主要为您介绍python右移,内容包括python怎样实现无符号右移,python循环的的结果如何像右移,python左移运算符困扰。是移位运算符,<&gt;是右移位。左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边的空位一律补

资讯

python读取汉字

阅读(2)

本文主要为您介绍python读取汉字,内容包括python读取的中文怎么使用,python怎么读取文本中的汉字,python怎么读取文本中的汉字。在python脚本的第一行加上#encoding=utf-8即可。程序如下:Created on 2011-9-24@author: l

资讯

python数组行列

阅读(2)

本文主要为您介绍python数组行列,内容包括python3如何把由坐标构成的一维数组转换成行列分别为xy值的二维数组,python中怎样让数据列转置,python怎么输入一个数组矩阵。需求:你需要转置一个二维数组,将行列互换.讨论:你需要确保该数组的行列数

资讯

跳板机python

阅读(2)

本文主要为您介绍跳板机python,内容包括如何直接通过跳板机ssh到服务器,如何无视跳板机,如何直接通过跳板机ssh到服务器。公司连上远程游戏服需要先ssh登到跳板机,再在跳板机上ssh到远程,不能直连,如:自己的系统(Mac OS) ===&gt; 跳板机 =

资讯

python公开课

阅读(2)

本文主要为您介绍python公开课,内容包括Python教学视频实用型的哪里有,哪的Python视频教程比较好,有什么比较好的Python学习教程。随着人工智能时代呼声渐起,Python凭借其入门简单、应用广泛的优势成为很多想要入行互联网行业的人们的首选编

资讯

python二进制文件读取

阅读(2)

本文主要为您介绍python二进制文件读取,内容包括在python中如何从二进制文件中读取信息,在python中如何从二进制文件中读取信息,python二进制文件的读取与写入可以分别使用和方法。你是指读入二进制文件吧?可以使用numpy.fromfile(),也可以使

资讯

python黑客pdf

阅读(2)

本文主要为您介绍python黑客pdf,内容包括为什么很多关于python的黑客书,我想成为一名黑客,我在学python,可是里面讲的多是游戏设计,能否,求黑客书籍资源。学习是循序渐进的过程最常见的有两本python和黑客相关的书《python灰帽子:黑客与逆向

资讯

pythonexcel中文

阅读(2)

本文主要为您介绍pythonexcel中文,内容包括python怎么读excel中文,python怎么将中文写入excel文档,python怎么输出中文文件名excel。简单的介绍一下这两个库,先说xlrd,这个库读excel比较方便,各种方法使用起来也挺方便:bk = xlrd.open_workboo

资讯

apachepythonlinux

阅读(2)

本文主要为您介绍apachepythonlinux,内容包括请教一个关于linux下APACHE关于PYTHON的设置问题,linux配置apache和python的环境,modpython在安装的报错处理,在线,如何在Apache下设置Python。二、linux下apache配置python 一.安装apache apac

资讯

chainPython

阅读(2)

本文主要为您介绍chainPython,内容包括ord在python是什么意思怎么使用,Python大神解释一下吧,python中round函数怎么用。>>>help(ord)Help on built-in function ord in module builtins:ord() #

资讯

python添加一行

阅读(2)

本文主要为您介绍python添加一行,内容包括python怎么实现数组增加一行或多行,python如何将字符串增加一行,python怎么实现数组增加一行或多行。把文档全部作为一个字符串,字符串可以相加, 如在1.doc里添加s 和d,用>>>file=open(1.doc,r)>>>str