PyQt开发桌面软件非常快,虽然在linux和mac下PyQt安装非常简单,但是大部分windows不可能都愿意点开安装图标。所以如果能将python脚本打包成exe的话就非常方便了。
网上搜到了三种软件:
看起来名字挺靠谱,不过网上介绍对python2.7之后支持不够
对python2.7支持
好吧我唯一试成功的一个
所以就只介绍cx_freeze的用法吧
前往这里下载对应版本的cx-freeze,windows下直接安装即可。
进入待转换的python脚本目录下,比如C:\main.pyw
就进入C:\
,然后新建文件setup.py,键入以下内容
from cx_Freeze import setup, Executable
setup(
name = "PyQtSort",
version = "0.1",
description = "PyQtSort",
executables = [Executable("main.pyw", base = 'Win32GUI')])
将main.pyw
替换成你的脚本名
保存退出
打开cmd
, 进入C:
(python脚本所在目录),运行python setup.py build
自动生成目录下build/exe.win32-x.x/main.exe
完成。
Import: NoModule named atexit
虽然不知道atexit此物是干嘛的,不过很明显在main.pyw中加入一句import atexit
就解决问题了!
AttributeError: 'Module' object has no attribute 'QtSort'
其中QtSort是我自己写的一个模块,此处出错在程序中的一句:
from lib.sort_algo import *
而包lib.sort_algo.init.py中__all__包含了QtSort,照理来说不应该有问题。
解决办法:
把import * 改成 import 具体模块就可以了
如果出现其他问题建议google吧,不知道问什么PyQt相关的问题比较少,虽然很简单的问题也得自己纠结。