文档章节

Python工程的编译、合并、打包、发布

八风不动
 八风不动
发布于 2017/03/21 23:48
字数 175
阅读 425
收藏 0

确保要发布的包(demo)的根目录中有__main__.py文件,这个是程序执行入口。

编译

python3 -O -m compileall demo

批量改名.pyc文件

 find . -name '*.pyc' -exec rename 's/.cpython-35.opt-1//' {} \;

移动.pyc文件

find . -name '*.pyc' -execdir mv {} .. \;

清理.py文件

find . -name '*.py' -type f -print -exec rm {} \;

清理__pycache__文件夹

find . -name '__pycache__' -exec rmdir {} \;

打包成zip

zip -r pub.zip ./demo/*

 运行时只要将zip文件作为参数即可

python3 pub.zip

 

最终整合脚本

cd $1
python3 -O -m compileall .
find . -name '*.pyc' -exec rename 's/.cpython-35.opt-1//' {} \;
find . -name '*.pyc' -execdir mv {} .. \;
find . -name '*.py' -type f -print -exec rm {} \;
find . -name '__pycache__' -exec rmdir {} \;
zip -r ../$1.zip ./*

调用方式 

chmod +x pycompile.sh
./pycompile.sh demo

 

© 著作权归作者所有

共有 人打赏支持
八风不动
粉丝 33
博文 36
码字总数 10759
作品 2
天津
架构师
python pyrex windows 编译C可执行文件

python写成py文件经过处理转化成pyx文件,以及函数说明文件pyi使用pyrexc.py编译成对应模块的c和h文件 然后写一个main的cpp文件,使用cmake产生vs工程,使用incredBuild编译工程。 以下是一个...

悠米海
2012/09/25
0
0
Python application 的打包和发布——(上)

Packaging and Distributing Projects 介绍了 python application 打包和发布的规范,只有满足这种规范的 package 才能被最为常用的包管理工具 pip 所管理。setuptools 是常用的打包工具,其...

koala bear
2015/09/06
0
0
cx_Freeze打包的程序在中文路径下的兼容性

前段时间对Python几大打包工具都进行了研究,包括py2exe、pyInstaller和cxFreeze。很可惜目前只有cxFreeze支持Python3,而且据搜索到的资料,都说如果打包带GUI的脚本后得到的程序无法在中文...

炸酱面
2012/04/05
0
5
使用Visual Studio,几步实现Python C++扩展,以及DLL调用

decodeFile(PyObject self, PyObject args){ } static PyMethodDef methods[] = { }; import DynamsoftBarcodeReader formats = { } def initLicense(license): def decodeFile(fileName): i......

yushulx
2015/05/26
0
0
使用Enigma Virtual Box让Py2exe打包出的单文件更完美

做为一个Python爱好者,我主要使用Python写一些小工具方便自己和同事工作。如何让我写的小工具简单的发布给别人使用就成了一个让人头痛的问题,因为大家都知道,Python脚本要打包成一个可执行...

炸酱面
2012/03/23
0
1

没有更多内容

加载失败,请刷新页面

加载更多

Java异常处理最佳实践

总结一些Java异常的处理原则 Java异常处理最佳实践 不要忘记关闭资源 在finally里关闭资源 public void readFile() { FileInputStream fileInputStream = null; File file = new Fil...

yysue
今天
1
0
00.编译OpenJDK-8u40的整个过程

前言 历经2天的折腾总算把OpenJDK给编译成功了,要说为啥搞这个,还得从面试说起,最近出去面试经常被问到JVM的相关东西,总感觉自己以前学的太浅薄,所以回来就打算深入学习,目标把《深入理...

凌晨一点
今天
4
0
python: 一些关于元组的碎碎念

初始化元组的时候,尤其是元组里面只有一个元素的时候,会出现一些很蛋疼的情况: def checkContentAndType(obj): print(obj) print(type(obj))if __name__=="__main__": tu...

Oh_really
昨天
6
2
jvm crash分析工具

介绍一款非常好用的jvm crash分析工具,当jvm挂掉时,会产生hs_err_pid.log。里面记录了jvm当时的运行状态以及错误信息,但是内容量比较庞大,不好分析。所以我们要借助工具来帮我们。 Cras...

xpbob
昨天
124
0
Qt编写自定义控件属性设计器

以前做.NET开发中,.NET直接就集成了属性设计器,VS不愧是宇宙第一IDE,你能够想到的都给你封装好了,用起来不要太爽!因为项目需要自从全面转Qt开发已经6年有余,在工业控制领域,有一些应用...

飞扬青云
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部