东方不败
py2app是在mac OS系统上打包python文件为app的;
py2exe是在windows系统上打包python文件为exe的;
pyinstaller似乎也是windows系统上的。
这些都用过,感觉还不错,就是中间老是遇到一些烦人的小问题。
今天就介绍一下py2app打包python文件
首先安装py2app
$ pip install py2app
然后创建一个setup.py(其实叫其他的名字也行)
""" py2app build script for MyApplication Usage: python setup.py py2app """ from setuptools import setup setup( app=["MyApplication.py"], setup_requires=["py2app"], )
把上面的 MyApplication.py 换成你想打包的python文件即可。
然后就生成了一个可以直接在mac上运行的app了
当然会出现一些小问题,
被打包的部分源代码如下:
import cv2.cv as cv import sys import cv2 import numpy as np if __name__ == "__main__": face_cascade = cv2.CascadeClassifier('./haarcascade_frontalface_default.xml') eye_cascade = cv2.CascadeClassifier('./haarcascade_eye.xml')
在上面的例子里,import的库会被自动打包进去,
但是读取的两个外部的xml文件是不会被自动打包去进的。
这时,我们只要人为把这两个xml文件放进去即可,点击生成的app,显示包内容,在Contents-Resources目录下粘贴上外部文件即可。
其实这些开源工具总是会出现一些烦人的小问题,尤其是安装时,很可能会出错,然后又要花很长时间在stackoverflow上找,能找到时幸运的,有时候bird.so也帮不了。头疼啊。
就比如安装py2app时,遇到一个问题pip install py2app 理论是可以的,但是就是不成功,失败,是不是wall的问题,还是这个链就一直是断了。搜了半天也解决不了问题,最终的解决方法,请见下一篇“当pip install失败时该怎么办”