zoukankan      html  css  js  c++  java
  • python 编译源文件

    背景

    近期项目到了部署的阶段。由于项目后台和算法都是用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

  • 相关阅读:
    SQL2005四个排名函数(row_number、rank、dense_rank和ntile)的比较
    LINQ to List泛型的几种简单查询
    sql语句精选
    C#利用QrCode.Net生成二维码(Qr码)
    LINQ to XML CRUD,并且封装为DAL方法
    vim编辑器
    去年的烟花特别多……
    年初七
    活死人黎明 Dawn of the Dead
    在碟片里奔驰我的看碟人生
  • 原文地址:https://www.cnblogs.com/atuotuo/p/9096891.html
Copyright © 2011-2022 走看看