这里有这样一个应用场景:python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要。
# 首先确保你是用的是Linux系统,并且安装了Python环境
# 这里小编使用的是Centos7,Python版本是3.7
# 同时确保你安装了python-devel,gcc
# 如果没有安装,请执行如下命令
yum install python-devel
yum install gcc
# 以下我们开始编辑代码测试
第一步:这里我写一个简单的测试脚本test.py
#-* -coding: UTF-8 -* -
__author__ = 'dianxiaoer'
class Test:
def say(self):
print("hello! This is compile test")
第二步:同时建立setup.py文件
#-* -coding: UTF-8 -* -
__author__ = 'dianxiaoer'
from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules = cythonize(["test.py"]))
第三步:切换至测试的文件夹
cd test_compile
可以看到以下两个文件
第四步:执行如下命令
python setup.py build_ext
可以看到生成以下文件夹,其中蓝色框里面就是我们需要的编译后的so文件
第五步:验证我们的Python程序可以编译之后可以正常使用
可以看出,我们像其他Python模块一样,正常导入使用,至此初步编译完成了~~~
下期介绍集成编译