当前位置:首页 » 编程语言 » python扩展模块

python扩展模块

发布时间: 2022-08-13 15:21:36

Ⅰ 什么是目前比较常用的python扩展库管理工具

这个网站左上角有documentation链接的,点进去看看。
像exe,msi如果别人已经编译过了就看不到源码了,说明作者并不希望你看到源码。第三方库开源软件比较多,有网页论坛可以找,所以直接进模块目录就可以看到源码。
元格中输入公式:=RIGHT(A,),确认后即显示

Ⅱ 如何编译C++文件为Python扩展模块

大概有三种常用方法:
1>使用ctypes模块来调用C写的共享库,比如:
[python] view plain print?
#测试ctypes调用linux动态库的能力
from ctypes import *
lib = CDLL("libc.so.6")
printf = lib.printf
printf("Hello World\n")

#查找动态库
from ctypes.util import find_library
print find_library('c')
output = CDLL(find_library("c")).printf
output("测试成功!\n")
但是用它来调用C++写的so就不太合适,因为编译时c++函数名修饰会给你的函数取一个特殊的字符串,你不能在你的python代码里直接使用此函数名,除非你使用的是修饰后的函数名。(在linux下你可以用nm来查看so中的函数名)

2>用C来写python的扩展模块,这个没怎么用过,以后使用时再记录在此。
3>用C++来写python扩展模块:
我是使用Boost.Python来写扩展的,先上工作中的代码片段:

[python] view plain print?
#include <boost/python.hpp> //包含boost.python头文件
#include <cstdio>
#include <string>

using namespace boost::python;//引入命令空间

class lshw //定义一个类
{
public:
lshw();
virtual ~lshw();

void scan_device();
string get_xml();

private:
hwNode *computer;
};

lshw::lshw()
{
computer = new hwNode("computer", hw::system);
}

lshw::~lshw()
{
if (computer)
delete computer;
}

void lshw::scan_device()
{
enable("output:numeric");
disable("output:sanitize");
scan_system(*computer);
}

string lshw::get_xml()
{
return computer->asXML();
}

void hello()
{
std::cout << "Hello World!" <<std::endl;
}

BOOST_PYTHON_MODULE(lshw)
{
class_<lshw, boost::nonable > ("lshw", "This is a lshw project python extend", init<>())//导出类中的方法
.def("scan_device", &lshw::scan_device)
.def("get_xml", &lshw::get_xml)
;
def("hello",&hello);//导出方法
}
使用boost.python其实结构很简单,你只要写很少的boost.python的代码,你可以把大部分的精力放在C++功能代码上,花很少的精力就可以把它扩展成python的模块。下面是我在Ubuntu11.10上的编译过程:

首先安装boost.python:
sudo apt-get install libboost-python1.46.1
再来编译生成so共享库文件:
g++ -shared -fPIC lshw.cc -o lshw.so -lboost_python
使用:
[python] view plain print?
import lshw
hw = lshw.lshw()
lshw.hello()
hw.scan_device()
xml = self.hw.get_xml()

Ⅲ python语言的特点是什么

Python 特点:简单易学
Python 是一种代表简单注意思想的语言,阅读一个良好的 Python 程序,即使是在 Python 语法要求非常严格的大环境下,给人的感觉也像是在读英语段落一样。
换句话说,Python 编程语言最大的优点之一,是其具有伪代码的特质,它可以让我们在开发 Python 程序时,专注于解决问题,而不是搞明白语言本身。
Python 特点:开源
Python 是 FLOSS(自由/开源源码软件)之一,简单地理解就是,用户使用 Python 进行开发和发布自己编写的程序,不需要支付任何费用,也不用担心版权问题,即使作为商业用途,Python 也是免费的。
开源正在成为软件行业的一种发展趋势,现在有很多商业软件公司都开始将自己的产品变成开源的(例如 Java)。也许,Python 的开源正是它如此优秀的原因之一,因为会有这么一群人,他们希望看到一个更加优秀的 Python,从而为了这个目标,不断地对 Python 进行创造,不断地改进。
Python 特点:高级语言
Python 是高级语言,因此当使用 Python 语言编写程序时,我们无需再考虑一些底层细节方面的问题。例如,如何管理程序使用的内存等等。
Python 特点:解释型语言
一个用编译型语言(如 C 或 C++)写的程序,可以从源文件转换到一个计算机使用的语言。这个过程主要通过编译器完成。当运行程序的时候,我们可以把程序从硬盘复制到内存中并且运行。
而 Python 语言写的程序,则不需要编译成二进制代码,可以直接从源代码运行程序。在计算机内部,由 Python 解释器把源代码转换成字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。
事实上,由于不再担心如何编译程序,使得使用 Python 变得更加简单,我们只需要将 Python 程序复制到另外一台计算机上,它就可以工作了。因此,Python 程序更加易于移植。
Python 特点:可移植性
由于 Python 是开源的,它已经被移植到许多平台上。如果能够避免使用依赖系统的特性,那就意味着,所有 Python 程序都无需修改就可以在好多平台上运行,包括 Linux 、Windows、FreeBSD、Solaris 等等,甚至还有 PocketPC、Symbian 以及 Google 基于 Linux 开发的 Android 平台。
解释型语言几乎天生就是跨平台的。Python 作为一门解释型的语言,它天生具有跨平台的特征,只要为平台提供了相应的 Python 解释器,Python 就可以在该平台上运行。
Python 特点:面向对象
Python 既支持面向过程编程,也支持面向对象编程。在“面向过程”的语言中(如 C 语言),程序仅仅是由可重用代码的函数构建起来的;而在“面向对象”的语言(如 C++)中,程序是由数据和功能组合而成的对象构建起来的。
与其他编程语言(如 C++ 和 Java)相比,Python 是以一种非常强大,而又简单的方式实现的面向对象编程。
Python 特点:强大的功能
Python 强大的功能也许才是很多用户支持 Python 的最重要的原因,从字符串处理到复杂的 3D 图形编程,Python 借助扩展模块都可以轻松完成。
实际上,Python 的核心模块已经提供了足够强大的功能,使用 Python 精心设计的内置对象可以完成许多功能强大的操作。
此外,Python 的社区也很发达,即使一些小众的应用场景,Python 往往也有对应的开源模块来提供解决方案。
Python 特点:可扩展性
Python 的可扩展性体现为它的模块,Python 具有脚本语言中最丰富和强大的类库,这些类库覆盖了文件 I/O、GUI、网络编程、数据库访问、文本操作等绝大部分应用场景。
Python 可扩展性一个最好的体现是,当我们需要一段关键代码运行的更快时,可以将其用 C 或 C++ 语言编写,然后在 Python 程序中使用它们即可。
除了以上几个特点(也可称之为优点)之外,作为一个解释型语言,Python 自然也有一些弱点,比如:
速度慢:Python 程序比 Java、C、C++ 等程序的运行效率都要慢。
源代码加密困难:不像编译型语言的源程序会被编译成目标程序,Python 直接运行源程序,因此对源代码加密比较困难。
其实,这两个缺点并不是什么大问题,首先,由于目前计算机的硬件速度越来越快,软件工程往往更关注开发过程的效率和可靠性,而不是软件的运行效率;至于第二个问题就更不是问题了,现在软件行业的大势本就是开源,就像 Java 程序同样很容易反编译,但丝毫不会影响它的流行。

Ⅳ VS2017新建C++的Python扩展模块问题

首先要安装有Python tools for visual studio
然后文件=>新建=>项目,在对话框里左侧选择Python,在右侧选择Python Application
然后写一行代码print("hello world")就可以

Ⅳ Python扩展模块点号后提示有哪些方法

不少IDE都带有自动提示功能比如wingide、pycharm。
想在shell中可以装ipython,在敲了点后按tab键就会有提示。
在python原生shell中可以用dir(模块或对象名)来查看对象的属性的方法。
希望能对你有所帮助。

Ⅵ python文件后缀是什么

python文件后缀总结:

(1).py:这通常是您编写的输入源代码。

(2).py3:Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用)。

(3).pyc:这是编译好的字节码。如果导入一个模块,python将生成一个*.pyc包含字节码的文件,以便再次导入它更容易(也更快)。

.pyc二进制文件可以反编译成.py文件,反编译软件叫Easy Python Decompiler。

(4).pyo:这是在优化(-O)时创建的*.pyc文件,从Python3.5开始,Python将只使用.pyc而不是.pyo和.pyc。

(5).pyd:这基本上是一个Windows DLL文件。

(6).pyi:MyPy存根,存根文件(PEP 484)。

(7).pyw:用pythonw.exe执行的Windows的Python脚本。

(8).pyx:将Cython src转换为C/C++。

(9).pyz:Python脚本归档(PEP 441)(这是一个包含标准Python脚本头之后的二进制形式的压缩Python脚本(ZIP)的脚本)。

(10).pywz:用于MS-Windows的Python脚本归档(PEP 441)(这是一个包含标准Python脚本头之后的二进制形式的压缩 Python脚本(ZIP)的脚本)。

(11).py [cod]:.gitignore中的通配符表示该文件可能是.pyc,.pyo或.pyd。

(12).rpy:包含应用程序或框架特定功能的RPython脚本或Python脚本。

(13).pyde:处理使用的Python脚本。

(14).pyp:Py4D Python插件。

(15).pyt:Python声明文件。

众多python培训视频,尽在python学习网,欢迎在线学习!

Ⅶ 如何查询python扩展模块的使用方法

网络或者Google 还可以上模块(官)网站查

热点内容
数据库的中文乱码 发布:2024-05-09 04:41:00 浏览:750
永劫无间服务器为什么那么烂 发布:2024-05-09 04:34:38 浏览:810
用哪个软件配置华为企业路由器 发布:2024-05-09 04:23:58 浏览:521
简易脚本 发布:2024-05-09 04:17:30 浏览:802
返校vlog脚本 发布:2024-05-09 04:15:53 浏览:619
vps云服务器免费租用 发布:2024-05-09 04:10:42 浏览:209
空调压缩机排量 发布:2024-05-09 04:08:42 浏览:539
android使用静态库 发布:2024-05-09 04:05:40 浏览:214
原生安卓开机动画在哪里 发布:2024-05-09 03:52:19 浏览:395
微信收藏在哪个文件夹 发布:2024-05-09 03:47:03 浏览:826