“芳官”通过精心收集,向本站投稿了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.py2.然后配置环境变量:
例如我电脑将路径: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的用法分享
★ 动态新闻稿范文
★ 动态自我介绍
★ 工作动态范文格式
★ win xp操作系统下 防火墙经典使用指南Windows安全
Python在Windows和在Linux下调用动态链接库的教程(精选5篇)




