Pyhthon中使用compileall模块编译源文件为pyc文件

有的时候我们需要把项目中.py的python所有源文件编译成.pyc文件,只保留.pyc文件然后发布给别人(虽然说可以反编译,但也算是一种保护把).
这个时候就可以使用compileall 库来完成这个工作,它可以递归的把一个文件夹下的所有.py文件编译成.pyc文件。

例如我有一个django项目在test文件夹下就可以

代码如下:

E:\>python -c "import compileall; import re; compileall.compile_dir('test', rx=re.compile(r'[/\\][.]svn'), force=True)"

更多的使用和参数请参考
http://pymotw.com/2/compileall/
https://docs.python.org/2/library/compileall.html

然后就是要删除.py文件保留.pyc 文件了。
在linux下可以直接使用 find命令,在windows下可以使用dos命令,还可以写一个python脚本删除这些文件

(0)

相关推荐

  • Pyhthon中使用compileall模块编译源文件为pyc文件

    有的时候我们需要把项目中.py的python所有源文件编译成.pyc文件,只保留.pyc文件然后发布给别人(虽然说可以反编译,但也算是一种保护把). 这个时候就可以使用compileall 库来完成这个工作,它可以递归的把一个文件夹下的所有.py文件编译成.pyc文件. 例如我有一个django项目在test文件夹下就可以 复制代码 代码如下: E:\>python -c "import compileall; import re; compileall.compile_dir('test

  • python编译pyc文件的过程解析

    什么是pyc文件 pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念.pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的. 什么是pyo文件 pyo是优化编译后的程序 python -O 源文件即可将源程序编译为p

  • 在Python中封装GObject模块进行图形化程序编程的教程

    Python 是用于编码图形界面的极佳语言.由于可以迅速地编写工作代码并且不需要费时的编译周期, 所以可以立即使界面启动和运行起来,并且不久便可使用这些界面. 将这一点与 Python 易于链接本机库的能力结合起来,就可以形成一个出色的环境. gnome-python 是为 Python 封装 GNOME 及其相关库的软件包. 这使您能够用 Python 编写外观与核心 GNOME 应用程序完全相同的应用程序,而所花的时间只是用 C 编写该应用程序所花的一部分. 然而,不用 C 进行编程会有一个

  • 基于maven中多个子模块的构建顺序

    目录 maven多个子模块的构建顺序 这是因为子模块的构建顺序受两个因素影响 实际的构建顺序是这样形成的 maven中的构建 1.什么是构建 2.构建过程的几个主要环节 3.自动化构建 maven多个子模块的构建顺序 在实际的项目开发中,为了更好的组织项目代码,会采用分层架构的方式,这就会使用到maven的多模块特性. 假设项目分为A.B.C.D四层,在父模块的pom.xml中,一般这样来对子模块进行聚合 <modules> <module>A</module> <

  • 解析Nginx中的日志模块及日志基本的初始化和过滤配置

    无论在任何项目中,日志都是一个非常重要的模块,无论是问题定位还是日常信息的管理,都离不开他 在nginx中,ngx_errlog_module模块专门用于处理nginx日志信息,是nginx的core模块之一 在 main 函数中,时间初始化结束后马上进行的就是日志模块的初始化 日志结构: 日志模块的初始化主要做的事情就是初始化全局变量 ngx_log,并创建 errlog 文件 ngx_log_s 结构 ngx_log 变量是一个 ngx_log_s 结构体,定义在 core/ngx_log.

  • 对python中的logger模块全面讲解

    logging模块介绍 Python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的Python应用.同样这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP.GET/POST,SMTP,Socket等,甚至可以自己实现具体的日志记录方式.下文我将主要介绍如何使用文件方式记录log. logging模块包括logger,handler,filter,formatter这四个基本概念. logging模块与log4

  • node.js中fs文件系统模块的使用方法实例详解

    本文实例讲述了node.js中fs文件系统模块的使用方法.分享给大家供大家参考,具体如下: node.js中为我们提供了fs文件系统模块,实现对文件或目录的创建,修改和删除等操作. fs模块中,所有的方法分为同步和异步两种实现. 有 sync 后缀的方法为同步方法,没有 sync 后缀的方法为异步方法. 一.文件的整个读取 const fs = require('fs'); //参数一表示读取的文件 //参数二表示读取的配置,{encoding:'null', flag:'r'} //encod

  • python 中的paramiko模块简介及安装过程

    一:简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接. 由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一. 举个常见的例子,现有这样的需求:需要使用windows客户端,远程连接到L

  • 关于Qt6中QtMultimedia多媒体模块的重大改变分析

    一.前言 1.Qt 6.2 的第一个测试版刚刚发布,并在多个其他新附加组件中加入了全新的 Qt 多媒体模块.Qt Multimedia 是一个模块,它在 Qt 6 中发生了一些相当大的变化. 2.在很多方面,它是一个新的 API 和实现,即使我们重新使用了 Qt 5.15 中的一些代码.虽然我们试图为我们的大多数模块保持 Qt 5 和 Qt 6 之间尽可能多的源代码兼容性,但我们不得不在此处进行大量更改以使 API 和实现适合未来,最终决定以最好的为目标API 而不是最大的兼容性. 二.目标 Q

  • 解决Maven多模块编译慢的问题

    目录 Maven多模块编译慢 完整命令如下 Maven多模块编译中遇到的坑 一.概述 二.坑描述和解决方法 踩坑描述 解决方法 Maven多模块编译慢 最近在部署项目时发现,Maven编译打包相当耗时,比之前项目用Gradle慢了很多倍,特别是对于WEB工程,打war包花的时间很长,在unix主机下一般会用到3到4分钟,如果有多个WEB工程,那简直不能忍受,经过查找资料并结合本人真实验证,原本编译打包需要8分钟的项目,优化编译后时间减少至34秒. 如下图: 其中下面标红两个工程为WEB工程.下面

随机推荐