文档章节

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

八风不动
 八风不动
发布于 2017/03/21 23:48
字数 175
阅读 733
收藏 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

 

© 著作权归作者所有

共有 人打赏支持
八风不动
粉丝 34
博文 37
码字总数 11048
作品 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
LibQQt v1.0 and PyMake(PyCmd).py v1.0 实现Qt开发畅通无阻

在MIPS开发项目的额时候遇到很多Qt自身无法解决的问题。 比如QTableView完全自定义的时候QHeaderView无法被完全隐藏。不得已不得不做了这样一个中间适配层。里面有非常丰富的功能。 支持绘制...

DrAbel
2017/09/23
119
0
cx_Freeze打包的程序在中文路径下的兼容性

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

炸酱面
2012/04/05
0
5
Hikyuu Quant Framework 1.0.2 发布,修复版本

Hikyuu Quant Framework 发布 1.0.2 修复版本 修复延迟操作情况下止损未按预期卖出的BUG(建议升级) 其他开发工程调整: 建立VS2010工程,供VS开发爱好者使用 删除notebook示例代码,移至单...

fasiondog
2017/06/19
370
0

没有更多内容

加载失败,请刷新页面

加载更多

乱入Linux界的我是如何学习的

欢迎来到建哥学Linux,咳!咳!咳!开个玩笑哈,我是一个IT男,IT界的入门选手,正在学习Linux。 在之前,一直想进军IT界,学习IT技术,但是苦于没有人指导,也不知道学什么,最开始我自己在...

linuxCool
37分钟前
1
0
携程Apollo统一配置中心的搭建和使用(java)

一.Apollo配置中心介绍 1、What is Apollo 1.1 Apollo简介 Apollo(阿波罗)是携程框架部门研发的开源配置管理中心,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到...

morpheusWB
57分钟前
1
0
远程获得的有趣的linux命令

使用这些工具从远程了解天气、阅读资料等。 我们即将结束为期 24 天的 Linux 命令行玩具日历。希望你有一直在看,如果没有,请回到开始,从头看过来。你会发现 Linux 终端有很多游戏、消遣和...

Linux就该这么学
今天
6
0
聊聊flink的AsyncWaitOperator

序 本文主要研究一下flink的AsyncWaitOperator AsyncWaitOperator flink-streaming-java_2.11-1.7.0-sources.jar!/org/apache/flink/streaming/api/operators/async/AsyncWaitOperator.java ......

go4it
今天
5
0
Java并发编程基础(四)

ThreadGroup 在主线程创建得线程,如果没有给他指定线程组,那么创建的线程,默认和主线程同一个线程组。线程组可以底下可以是线程,也可以实线程组。 构建线程组的方法: private ThreadGr...

chendom
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部