热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python如何封装成so_python打包成so文件

作为一个python开发者,是否也想像CC#程序员一样把代码编译成dll,JAVA程序员编译成jar包呢?即保护的代码的隐私,

作为一个python开发者,是否也想像C++ C#程序员一样把代码编译成dll,JAVA程序员编译成jar包呢?即保护的代码的隐私,又能把逼装住?/doge 答案是肯定的。

1.安装工具

python 安装:cython

linux 安装:python-devel,gcc

不再赘述

2.写一个被打包的测试文件

#hello.py

def hello(name):

print 'hello! %s' % name1

2

3.准备开玩

#setup.py

# coding:utf-8

from distutils.core import setup

from Cython.Build import cythonize

if __name__ == '__main__':

file_name = 'hello.py' # 文件名

build_dir = '' # 文件目录

build_tmp_dir = 'temp' # 编译的临时文件目录

setup(ext_modules=cythonize(file_name), script_args=["build_ext", "-b", build_dir, "-t", build_tmp_dir])1

2

3

4

5

6

7

8

9

这时运行setup.py,就可以看到生成的hello.so文件了

另我更加酸爽的是,这个so文件可以像py文件直接import,你敢信?

#test.py

from hello import hello

if __name__ == '__main__':

hello()1

2

3

注意

1.此so类似于将py转为so,并没有打包他的依赖项和环境、框架;

2.感谢Arvin大神写的py2so,https://github.com/ArvinMei/py2so.git,可遍历文件夹打包并删除生成的临时文件,非常的给劲



推荐阅读
author-avatar
荡平三界_713
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有