python文件后缀是什么

python文件后缀是什么,第1张

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学习网,欢迎在线学习!

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

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

extern "C" {

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

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

}

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

http://blog.waterlin.org/articles/using-python-ctypes-to-link-cpp-library.html

http://stackoverflow.com/questions/145270/calling-c-c-from-python

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

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

后来定位到原因:

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

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

先来一个网上随便都能找得到的例子吧:先来一个test.c

在来一个test.h:

然后将其编译成.so文件:

最后在python文件里面调用:

然后在终端运行:

嗯,python2的这个数字精度的bug也是醉了

当然了,ctypes不是这样简单的模块,否则也不会放到标准库里面去

(未完待续。。。)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8090483.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存