码迷,mamicode.com
首页 > 编程语言 > 详细

python 编译源文件

时间:2018-05-27 19:00:16      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:进入   运行   height   code   .com   strong   后台   参考   ase   

背景

近期项目到了部署的阶段。由于项目后台和算法都是用Python "撸的",但是又不希望将源代码直接 "release" 到 “客户”哪里。于是开始思考。。。

首先,按照惯性思维,能否将编译后的东东放出去呢?(类似java或.net 的部署方式)

再次,是不是能否将“关键部分”的代码保护起来呢?

 

解决方案

按照第一种思路,我们能将Python编译好的东西release出去呢?经过一些简单的理论查找和时间。发现了可行的解决办法。于是乎,就在今天的博客随笔中将其记录下来吧 :) 

 

Python 生成编译后的二进制文件的方法,官方提供了两种方式:  py_compile, compileall 

1) 使用模块 py_compile 编译单文件

1.1 进入到Python交互环境中,键入一下命令

import py_compile
py_compile.compile(‘/home/ct/Dowork.py‘)

或者直接执行脚本

python -m py_compile /home/ct/Dowork.py

 

运行结果如下:

技术分享图片

 

技术分享图片

 

 2) 使用模块 compileall 编译多个文件或目录, 方法和上面的一样,这里直接贴出结果:

技术分享图片

技术分享图片

可以看到,我们一共将4个Python“源文件”生成为编译后的“二进制”文件。 到这里我们编译工作已经完成!!

 

测试程序运行

程序的依赖关系为: Dowork.py 引用statics.py 中定义的方法, 经过测试,发现在删除statics.py 源文件但是保留 statics.pyc 的情况下,运行Dowork.py中的测试程序程序依然正常!!

因此,可以宣告: 这次将源码编译后,程序依然可以正常工作。 Well done!!

 

 

参考:

https://docs.python.org/2/library/py_compile.html

https://docs.python.org/2.7/library/compileall.html

python 编译源文件

标签:进入   运行   height   code   .com   strong   后台   参考   ase   

原文地址:https://www.cnblogs.com/atuotuo/p/9096891.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!