python文件工程化,隐藏源码

python文件工程化,隐藏源码

py文件转换为pyc文件

全文来自博客https://www.cnblogs.com/HByang/p/13223118.html

pyc介绍

pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高。

而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。

pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的。

使用

通过自带模块py_compile进行

1、将单个文件转换成pyc文件

用如下代码

import py_compile
py_compile.compile('test.py')

或者通过终端

python -m py_compile test.py

这样会在test.py文件所在的目录下,生成一个__pycache__(注意:这里目录名前后有两个下划线)的目录,并且其中存有一个test.cpython-35.pyc文件,这个pyc文件就是test.py编译之后生成的文件。

2、将目录下所有py文件转换成pyc文件

一般来说,我们的工程都是在一个目录下的,一般不会说仅仅编译一个py文件而已,而是需要把整个文件夹下的py文件都编译为pyc文件,python又为了我们提供了另一个模块:compileall 。使用方法如下:

import compileall
compileall.compile_dir(r'C:\Users\abc\Desktop\release_project')

也可以使用终端

python -m compileall C:\Users\abc\Desktop\release_project

这样就会在C:\Users\abc\Desktop\release_project目录下生成一个新的目录__pycache__,这个目录的下面会存放所有的和python源代码对应的pyc文件

python文件编译成.so二进制文件

这里要使用到Cython工具,官方中文文档https://moonlet.gitbooks.io/cython-document-zh_cn/content/

Cython 的 Hello World

由于 Cython 能接受几乎所有的合法 Python 源文件,开始使用 Cython 的最难的事情之一是怎么编译你的拓展(extension)。

那么,让我们从典型的(canonical)Python hello world 开始:

print "Hello World"

将代码保存在文件 helloworld.pyx 中。现在,我们需要创建 setup.py,它是一个类似 Python Makefile 的文件(更多信息请看源文件和编译过程)。 你编写的 setup.py 应该看起来类似这样:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules = cythonize("helloworld.pyx")
)

输入如下命令来构建你的 Cython 文件:

$ python setup.py build_ext --inplace

运行完上述命令会在你的当前目录生成一个新文件,如果你的系统是 Unix,文件名为 helloworld.so,如果你的系统是 Windows,文件名为 helloworld.pyd。现在我们用一用刚生成的文件:打开 Python 的解释器(interpreter),像 import 普通文件一样直接 import 你刚生成的文件:

>>> import helloworld
Hello World

恭喜!你已经学会了怎样构建 Cython 的拓展了。

参考

谢谢以下资料,侵删
[1]https://www.cnblogs.com/HByang/p/13223118.html

[2]https://moonlet.gitbooks.io/cython-document-zh_cn/content/

你可能感兴趣的:(笔记)