栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python源码加密

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python源码加密

将.py文件编译为.so文件
首先,安装python-dev、gcc环境
然后使用pip安装Cython
接下来编写setup.py,内容如下:

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

# 需要编译的文件列表
setup(ext_modules = cythonize(["Common.py", "MySQL.py", "WorkFlow.py", "main.py"]))

执行如下命令完成编译

python setup.py build_ext


编译完成后,当前目录会生成bulid目录,将其下lib.开头的目录中的.so文件拷贝到生产环境中即可

最后,在生产环境中调用,
比如程序的入口在main.py中main方法,代码如下,

def main():
    app.run(host='0.0.0.0', port=80)

则调用时代码如下

import main
main.main()

PS:window + python3环境中需要安装VC2010及以上版本,具体版本参考python3的编译时VC版本,查看方法:

import sys
print(sys.version)
'3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)]'

MSC v.1900 64 bit,

majorVersion = int(s[:-2]) - 6
minorVersion = int(s[2:3]) / 10.0

即:
majorVersion = 19 - 6
minorVersion = 0 / 10.0

majorVersion + minorVersion = 13 + 0.0 = 13.0

即,当前python3使用的是VC2015版本

即:安装VS2015,重点是VC++相关组部件

另外,在windows环境中生成的是.pyd文件,python调用.pyd的方法

# 源文件 test.py

class Hello:
    def work(self):
        print("hello word!")


# 编译后生成 test.xxxx.pyd,重命名为test.pyd并放置于调用文件同目录
# 调用文件 main.py
import test as testapp
h = testapp.Hello()
h.work()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号