Linux之python【让源码更安全之将py编译成so】

这里有这样一个应用场景: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

可以看到以下两个文件

Linux之python【让源码更安全之将py编译成so】_第1张图片

第四步:执行如下命令

python setup.py build_ext

可以看到生成以下文件夹,其中蓝色框里面就是我们需要的编译后的so文件

Linux之python【让源码更安全之将py编译成so】_第2张图片

第五步:验证我们的Python程序可以编译之后可以正常使用

Linux之python【让源码更安全之将py编译成so】_第3张图片

可以看出,我们像其他Python模块一样,正常导入使用,至此初步编译完成了~~~

下期介绍集成编译

你可能感兴趣的:(编程/Python,Linux)