利用content内容共享接口来减少python应用的大小
来源:互联网 发布:c语言continue例子 编辑:程序博客网 时间:2024/05/09 05:34
我们在先前的文章“利用ubuntu-app-platform提供的platform接口来减小Qt应用大小”已经了解到如何运用platform interface来减小Qt应用的大小。这里面的实现原理就是利用content分享来实现的。在今天的教程中,我们来运用一个开发者自己开发的python的interpreter snap安装包来实现同样的东西。对于一些系统来说,如果想要用最新的python版本,或者是想让很多的python应用都使用同一个python的安装,而不用分别把python的环境打入到每一个snap应用的包中,我们可以采用今天使用的方法。
这个python interpreter的snap应用的整个源码在:
https://github.com/jhenstridge/python-snap-pkg
我们可以通过如下的方式来得到:
$ git clone https://github.com/jhenstridge/python-snap-pkg
整个项目的源码如下:
$ tree -L 3.├── examples│ └── hello-world│ ├── hello.py│ ├── hello.sh│ └── snap├── README.md├── snap│ └── snapcraft.yaml└── src └── sitecustomize.py
在上面的snap目录中就是描述如何把python通过content sharing interface分享出去以供其它的开发者使用。开发者已经把编译好的snap上传到我们的商店了。我们可以通过如下的方式来进行安装:
$ snap install --edge python36-jamesh
我们可以到examples/hello-world目录下直接打入如下的命令:
$ snapcraft Preparing to pull hello-world Pulling hello-world Preparing to build hello-world Building hello-world Staging hello-world Priming hello-world Snapping 'hello-world' | Snapped hello-world_0.1_all.snap
我们可以看到生产的.snap文件。我们可以使用如下的命令:
$ sudo snap install --dangerous hello-world_0.1_all.snap
来安装这个应用。并使用如下的命令来进行连接和运行:
$ snap connect hello-world:python3 python36-jamesh:python3$ hello-worldHello world!
我们可以看到我们的hello-world应用被成功运行。
hello.py
print("Hello world!")
我们可以检查一下我们最后的hello-world_0.1_all.snap文件大小:
$ ls -alhtotal 28Kdrwxrwxr-x 3 liuxg liuxg 4.0K 3月 1 09:45 .drwxrwxr-x 3 liuxg liuxg 4.0K 3月 1 09:19 ..-rw-rw-r-- 1 liuxg liuxg 28 3月 1 09:19 .gitignore-rw-rw-r-- 1 liuxg liuxg 22 3月 1 09:19 hello.py-rwxrwxr-x 1 liuxg liuxg 60 3月 1 09:19 hello.sh-rw-r--r-- 1 liuxg liuxg 4.0K 3月 1 09:39 hello-world_0.1_all.snapdrwxrwxr-x 2 liuxg liuxg 4.0K 3月 1 09:23 snap
整个的.snap文件只有小小的4k大小。这比较以前的那种方法,显然这种通过content sharing的方法能够大大减少我们的python应用的大小。当然这个共享的python包也可以为其它的python应用所使用。
你甚至可以通过如下的方式来安装自己喜欢的pip包:
$ python36-jamesh.pip3 install --user django
这个django包的内容将会被安装到 python36-jamesh包里的$SNAP_USER_COMMON目录之中
0 0
- 利用content内容共享接口来减少python应用的大小
- 利用ubuntu-app-platform提供的platform接口来减小Qt应用大小
- 在BREW中使用Gzip压缩来减少应用程序包的大小
- 在Scope利用Content sharing Widget来分享内容
- 分离字库来减少中文版WinCE的下载大小
- 利用惰性函数来减少重复的浏览器执行
- 怎样减少 Android 应用包 60% 的大小?
- 怎样减少 Android 应用包 60% 的大小?
- 自己学着写一个BindView来减少findViewById的应用
- 如何减少App的大小
- 减少可执行程序的大小
- 减少IOS打包的大小
- 自定义Button按钮样式,减少应用大小
- 怎样减少 Android 应用包大小
- 用JavaScript压缩工具来减少Script文件的大小和提高执行效率
- 如何利用content接口在Ubuntu Core应用之间互相分享数据
- python使用yield来减少内存开销
- 利用javascript协议来减少简化FRAME SRC属性的设置
- wpf无边框的两种实现方式
- 单点登录原理和java实现简单的单点登录
- OA无纸化政府办公原笔迹电子签名解决方案
- C++ 学习笔记之 引用
- 面对对象 -- 七个设计原则
- 利用content内容共享接口来减少python应用的大小
- 使用PHP生成二维码(PHPQRCode)
- 抽象工厂设计模式
- linux telnet 安装
- 第9章 命令(3)——自定义命令的使用
- Algorithm理解用例:二叉树的遍历
- 离散数据插值
- NAT DHCP WWW rc.local
- C语言编译全过程【转】