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

  • 相关阅读:
    nginx学习1
    win7右下角的网络连接图标不见了~终极必杀技
    centos配置history记录每个用户执行过的命令
    Screen会话命令 Linux
    Linux的运行级别和chkconfig用法
    Linux与Windows中的UTC时间
    Solr 缓存配置
    SolrJ 查询数据
    Solr之困
    solr 查询参数说明
  • 原文地址:https://www.cnblogs.com/atuotuo/p/9096891.html
Copyright © 2011-2022 走看看