Python在Windows和在Linux下调用动态链接库的教程

时间:2019-08-24 22:04:39 作者:芳官 综合材料 收藏本文 下载本文

“芳官”通过精心收集,向本站投稿了5篇Python在Windows和在Linux下调用动态链接库的教程,以下是小编为大家整理后的Python在Windows和在Linux下调用动态链接库的教程,仅供参考,欢迎大家阅读。

篇1:Python在Windows和在Linux下调用动态链接库的教程

作者:lrfgjj2 字体:[增加 减小] 类型: 时间:-08-18

这篇文章主要介绍了Python在Windows和在Linux下调用动态链接库的教程,在进行Python的CS端编程时经常需要用到,需要的朋友可以参考下

Linux系统下调用动态库(.so)

1、linuxany.c代码如下:

#include “stdio.h” void display(char* msg){ printf(“%sn”,msg); } int add(int a,int b){ return a+b; }

2、编译c代码,最后生成Python可执行的.so文件

(1)gcc -c linuxany.c,将生成一个linuxany.o文件

(2)gcc -shared linuxany.c -o linuxany.so,将生成一个linuxany.so文件

3、在Python中调用

#!/usr/bin/python from ctypes import * import os //参数为生成的.so文件所在的绝对路径 libtest = cdll.LoadLibrary(os.getcwd + ‘/linuxany.so‘) //直接用方法名进行调用 print libtest.display(‘Hello,I am linuxany.com‘) print libtest.add(2,)

4、运行结果

Hello,I am linuxany.com

Windows下Python调用dll

python中如果要调用dll,需要用到ctypes模块,在程序开头导入模块 import ctypes

由于调用约定的不同,python调用dll的方法也不同,主要有两种调用规则,即 cdecl和stdcal,还有其他的一些调用约定,关于他们的不同,可以查阅其他资料

先说 stdcal的调用方法:

方法一:

import ctypesdll = ctypes.windll.LoadLibrary( ‘test.dll‘ )

方法二:

import ctypesdll = ctypes.WinDll( ‘test.dll‘ )

cdecl的调用方法:

1.

import ctypesdll = ctypes.cdll.LoadLibrary( ‘test.dll‘ )##注:一般在linux下为test.o文件,同样可以使用如下的方法:## dll = ctypes.cdll.LoadLibrary(‘test.o‘)

2.

import ctypesdll = ctypes.CDll( ‘test.dll‘ )

看一个例子,首先编译一个dll

导出函数如下:

# define ADD_EXPORT Q_DECL_EXPORTextern “C” ADD_EXPORT int addnum(int num1,int num2){return num1+num2;}extern “C” ADD_EXPORT void get_path(char *path){memcpy(path,“hello”,sizeof(“hello”));}

这里使用的是cdecl

脚本如下:

dll=ctypes.CDLL(“add.dll”)add=dll.addnumadd.argtypes=[ctypes.c_int,ctypes.c_int] #参数类型add.restypes=ctypes.c_int#返回值类型print add(1,2)get_path=dll.get_pathget_path.argtypes=[ctypes.c_char_p]path=create_string_buffer(100)get_path(path)print path.value

结果如下:

我们看到两个结果,第一个是进行计算,第二个是带回一个参数,

Python在Windows和在Linux下调用动态链接库的教程

当然我们还可以很方便的使用windows的dll,提供了很多接口

GetSystemDirectory = windll.kernel32.GetSystemDirectoryAbuf = create_string_buffer(100)GetSystemDirectory(buf,100)print buf.valueMessageBox = windll.user32.MessageBoxWMessageBox(None, u“Hello World”, u“Hi”, 0)

运行结果如下:

篇2:windows下python安装sqlalchemy教程Windows服务器操作系统

本文章来给大家详细介绍windows下python安装sqlalchemy教程与在安装sqlalchemy之前要准备工具,有需要的朋友可参考消息

如果是windows操作系统,我们需要先安装easy_install,那么我们先来安装easy_install

.安装setuptools(easy_install):

a.如果是32位的windows操作系统

32位的windows操作系统,直接找到对应的exe,然后安装即可

b.如果是64位的windows操作系统

windows 64为下没有安装包,需要自己编译安装,过程如下:

下载ez_setup.py

运行:

代码如下复制代码python ez_setup.py

2.然后配置环境变量:

例如我电脑将路径:D:toolsPython27Scripts

添加到环境变量中

--EOF--

安装成功easy_install之后我们再来给python安装sqlalchemy

然后执行下面的命令

代码如下复制代码

easy_install SQLAlchemy

显示如下,安装成功:

代码如下复制代码

D:>easy_install SQLAlchemy

Searching for SQLAlchemy

Reading pypi.python.org/simple/SQLAlchemy/

Reading www.sqlalchemy.org

Best match: SQLAlchemy 0.8.0b2

Downloading pypi.python.org/packages/source/S/SQLAlchemy/SQLAlchemy-0.8.0

b2.tar.gz#md5=09537c7b425d0be433f7aceabbf23d68

Processing SQLAlchemy-0.8.0b2.tar.gz

Running SQLAlchemy-0.8.0b2setup.py -q bdist_egg --dist-dir c:usersw3appdata

localtempeasy_install-lnagt1SQLAlchemy-0.8.0b2egg-dist-tmp-0flwk1

warning: no files found matching '*.jpg' under directory 'doc'

no previously-included directories found matching 'docbuildoutput'

***************************************************************************

Unable to find vcvarsall.bat

WARNING: The C extension could not be compiled, speedups are not enabled.

Failure information, if any, is above.

Retrying the build without the C extension now.

***************************************************************************

warning: no files found matching '*.jpg' under directory 'doc'

no previously-included directories found matching 'docbuildoutput'

zip_safe flag not set; analyzing archive contents...

***************************************************************************

WARNING: The C extension could not be compiled, speedups are not enabled.

Plain-Python build succeeded.

***************************************************************************

Adding sqlalchemy 0.8.0b2 to easy-install.pth file

Installed d:toolspython27libsite-packagessqlalchemy-0.8.0b2-py2.7.egg

Processing dependencies for SQLAlchemy

Finished processing dependencies for SQLAlchemy

D:>

--EOF--

篇3:Windows系统下安装Python的SSH模块教程

这篇文章主要介绍了Windows系统下安装Python的SSH模块教程,本文涵盖了pycrypto、ecdsa、paramiko、OpenSSH、SSH等模块的安装,需要的朋友可以参考下

Python中使用SSH需要用到OpenSSH,而OpenSSH依赖于paramiko模块,而paramiko模块又依赖于pycrypto模块,因此要在Python中使用SSH,则需要先安装模块顺序是:pycrypto ->ecdsa ->paramiko

1、安装pyCrypto

安装这个比较麻烦,需要本地编译,要装vs或gcc还有一堆配置,还不一定能编译成功,(网上能搜到安装步骤)

建议直接下载已编译版: www.voidspace.org.uk/python/modules.shtml#pycrypto

直接下载并安装既可。

(注:crypto有java和C++版)

2、安装ecdsa

看很多博客没有提到这个库,但我执行paramiko时,提示找不到ecdsa模块。

下载:pypi.python.org/pypi/ecdsa/0.9 ,解压到一个目录,目录中有一个setup.py。

安装比较简单,windows下直接在刚才解压后的目录执行:python setup.py install

3.安装paramiko

与安装ecdsa类型,只是打开下载页面很慢。。。

下载: github.com/paramiko/paramiko#,

安装步骤同ecdsa

注:1、所有另外安装的第三方库,如果不特指定安装后库目录的话,将默认保存到 %PYTHON_HOME%Libsite-packages下。

2、python大小写敏感,对模块名也是。

3、Crypto可以提供常见的加解密算法,如:RSA、RC4、DSA、DES

测试代码:

代码如下:

#!/usr/bin/python

# -*- coding:utf-8 -*-

# cp@chenpeng.info

import paramiko

def MAIN:

host = “10.1.1.1″

port = 22

user = “root”

pswd = “111222333″

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(host, port, user, pswd)

stdin, stdout, stderr = ssh.exec_command(‘ifconfig‘)

print stdout.read()

ssh.close()

#

if __name__==‘__main__‘:

try:

MAIN()

except Exception,e:

print e

输出如下:

目前主要用于批量执行多个服务器的ssh命令,批量维护比较方便,

下面是两种使用paramiko连接到linux服务器的代码

方式一:

代码如下:

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(“某IP地址”,22,“用户名”, “口令”)

上面的第二行代码的作用是允许连接不在know_hosts文件中的主机

方式二:

代码如下:

t = paramiko.Transport((“主机”,“端口”))

t.connect(username = “用户名”, password = “口令”)

如果连接远程主机需要提供密钥,上面第二行代码可改成:

代码如下:

t.connect(username = “用户名”, password = “口令”, hostkey=“密钥”)

例子:

代码如下:

#!/usr/bin/python

import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect(“某IP地址”,22,“用户名”, “口令”)

stdin, stdout, stderr = ssh.exec_command(“你的命令”)print stdout.readlines()

ssh.close()

下载linux服务器上的文件

代码如下:

#!/usr/bin/python

import paramiko

t = paramiko.Transport((“主机”,“端口”))

t.connect(username = “用户名”, password = “口令”)

sftp = paramiko.SFTPClient.from_transport(t)

remotepath=‘/var/log/system.log‘

localpath=‘/tmp/system.log‘

sftp.get(remotepath, localpath)

t.close()

上传文件到linux服务器

代码如下:

#!/usr/bin/python

import paramiko

t = paramiko.Transport((“主机”,“端口”))

t.connect(username = “用户名”, password = “口令”)

sftp = paramiko.SFTPClient.from_transport(t)

remotepath=‘/var/log/system.log‘

localpath=‘/tmp/system.log‘

sftp.put(localpath,remotepath)

t.close()

篇4:MRTG在windows下面的步骤教程

MRTG(Multi Router Traffic Grapher),通常讲是一个监控网络链路流量负载的开源软件,它可以从所有运行SNMP协议的设备上(包括服务器、路由器、交换机等)抓取信息,事实 上它不仅可以监控网络设备,任何其它的支持SNMP协议的设备都可以做为MRTG的监控对象,并自动生成包含PNG图形格式的HTML文档,通过HTTP 方式显示给用户。

官方的安装指导:mrtg.cs.pu.edu.tw/doc/mrtg-nt-guide.en.html

准备安装环境

安装之前,除了MRTG安装程序外,还要下载几个辅助软件。这些软件全部是免费的。

1. 下载MRTG

www.mrtg.org/

2. 下载ActivePerl

www.activestate.com/activeperl/downloads

/soft/14302.html

3. 下载Windows服务安装工具:SERANY.exe 和 INSTSRV.exe

www.electrasoft.com/

安装MRTG

下载了以上软件后就可以开始安装了。事实上在Windows上安装MRTG很简单,因为MRTG是以Perl语言开发的,所以要首先安装一个Perl语言的运行环境出来。

1. 安装ActivePerl

解压ActivePerl的包,在安装目录中找到install.bat文件,运行它即可。在DOS窗口中,安装程序会问一些问题,诸如安装路径、是否要 修改环境变量等,可以全部使用缺省设置,一路回车就行了。缺省情况下Perl安装在C:Perl目录下。完成安装后,打开Windows的环境变量检查 一下是否增加了Perl的运行文件路径。

2. 安装MRTG

解压MRTG的包,我用的是MRTG-2.12.2版本。将解压后的目录移到C:下就行了。

需要注意的地方

(1)、给Windows安装SNMP协议支持

通常由于SNMP是一个建议关闭的协议(因为有安全漏洞),所以Windows 不是缺省安装的。不过MRTG就是要用SNMP协议,有什么办法呢,就装一个吧。在“控制面板->增加/删除程序->Windows 组件安装”中,安装SNMP的组件。(打开“Windows 组件向导”-->在“组件”中,单击“管理和监视工具”(但是不要选中或清除其复选框),然后单击“详细信息”。

选中“简单网络管理协议”复选框,然后单击“确定”。)

(2)、修改SNMP的安全设置

如果被监控的机器上也跑Windows的话,这部分就一定要设置(要在被监控方设置,MRTG所在服务器可以不用设置),否则永远也收不到SNMP的消息,

打开Services窗口并找到SNMP服务,打开右键菜单,选择属性。在打开的窗口中找到“安全”选项页。在选项页中有两部分设置,上半部分是指 SNMP服务接受哪种Community指示字,缺省情况下Windows 2003不对任何指示字反馈。我一般都设为“public--READ ONLY”。下半部分可以设置可信任的主机名、IP或是IPX名称。

(3)、修改防火墙

如果你安装了防火墙,要记得打开UDP 161端口,否则也会问题多多。

运行MRTG

好了,总算安装完了。现在可以运行一下MRTG了,看看它的庐山真面目。

打开DOS窗口,首先进入C:mrtgbin,然后输入以下命令:

perl cfgmaker public@localhost --global “WorkDir: C:Inetpubwwwrootmrtg” --output mrtg.cfg

这条命令是给MRTG建立一个监控配置文件,监控的对象是localhost,就是本地机器。你也可以用IP地址来代替localhost,或者指向其它的监控主机。(注 意:上面这行命令中WorkDir: 与C:盘符之间要有空格!!! 另外C:Inetpubwwwrootmrtg这个目录也可以换成其它目录,不过因为mrtg会在这个工作目录下生成统计图表和网页,所以一般指定 为某个站点下的目录,以方便直接从网上查看统计数据)

再键入一个命令:

perl mrtg mrtg.cfg

这个命令会在C:Inetpubwwwrootmrtg目录下建立一些HTML和PNG文件,这些文件就是用户通常看到的流量报表了。

使MRTG成为Windows的服务

SERANY.exe和INSTSRV.exe这两个程序是Windows自带的工具的软件。它们可以把任何一个Windows的应用程序安装成为

Windows的一个服务。

(1)、修改注册表

创建一个文本文件,在文件中写入以下内容,并保存为mrtg.reg文件:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesMRTGParameters]

“Application”=“c:perlbinwperl.exe”

“AppParameters”=“c:mrtgbinmrtg --logging=eventlog c:mrtgbinmrtg.cfg”

“AppDirectory”=“c:mrtgbin”

(2)、安装服务

把SERANY.exe,instsrv.exe复制MRTG的安装目录下,键入以下命令:

instsrv MRTG c:mrtgbinsrvany.exe

双击mrtg.reg文件,把相关信息注册到注册表中。在“控制面板->管理工具->Services”下运行名为MRTG的服务即可。

默认情况下,每5分钟,mrtg收集一次数据(注意:一定要在binmrtg.cfg配置文件最后一行加上RunAsDaemon: yes)

篇5:python在windows下实现备份程序实例

最近更 新

python 获取本机ip地址的两个方法

Python 异常处理实例详解

wxpython学习笔记(推荐查看)

Python isinstance判断对象类型

动态创建类实例代码

使用python实现拉钩网上的FizzBuzzWhizz问

Python SQLite3数据库操作类分享

Python 面向对象 成员的访问约束

Python模块学习datetime介绍

Python random模块(获取随机数)常用方法

热 点 排 行

Python入门教程 超详细1小时学会

python 中文乱码问题深入分析

比较详细Python正则表达式操作指

Python字符串的encode与decode研

Python open读写文件实现脚本

Python enumerate遍历数组示例应

Python 深入理解yield

Python+Django在windows下的开发

python 文件和路径操作函数小结

python 字符串split的用法分享

动态关联表数据库教程

Python中实现结构相似的函数调用方法

Python编程中的异常处理教程

在VB中动态创建数据库数据库教程

Windows下如何创建DFS根目录网络服务器

巧用Python装饰器 免去调用父类构造函数的麻烦

动态新闻稿范文

动态自我介绍

工作动态范文格式

win xp操作系统下 防火墙经典使用指南Windows安全

Python在Windows和在Linux下调用动态链接库的教程(精选5篇)

欢迎下载DOC格式的Python在Windows和在Linux下调用动态链接库的教程,但愿能给您带来参考作用!
推荐度: 推荐 推荐 推荐 推荐 推荐
点击下载文档 文档为doc格式
点击下载本文文档