python - 安装pyqt5模块,PyCharm配置QtDesigner/Pyuic/Pyrcc,ui转py文件,图片转ico/icns格式,pyinstaller/py2app打包代码

window配置Python+PyQt5+QtDesigner+PyUic+PyRcc(最全安装教程):https://blog.csdn.net/baidu_35145586/article/details/108110236
MacOS配置Pycharm+Python+PyQt5+QtDesigner+PyUic+PyRcc:
https://blog.csdn.net/lkhk2008/article/details/116019386

QtDesigner工具的使用(界面与业务逻辑分离实现):https://blog.csdn.net/weixin_62094306/article/details/127730280
使用Pyinstaller将Python源代码打包成可执行文件:https://blog.csdn.net/unreliable_narrator/article/details/128465254

作用介绍

  • PyQt5:引用该模块来编写python代码,进行UI设计。
  • QtDesigner:直接通过Qt语言来进行UI设计的,同时还支持拖拽式的UI设计。
  • PyUic:将QtDesigner代码转化成Python代码。
  • PyRcc:将图片、数据文件资源打包成py文件。QtDesigner中管理资源文件(图片、数据文件)是通过.qrc文件来管理的。pyQt生成的应用程序,引用图片通常是将资源文件装换为 python 文件,然后引用资源文件,而不能直接加载资源文件。而pyrcc就是将.qrc文件转化成.py文件的。

直接安装anaconda软件(自带常用模块包,包括pyqt5),或者终端指令单独安装PyQt5和PyQt5-tools

PyCharm配置QtDesigner,Pyuic,Pyrcc

  1. 终端指令安装PyQt5: pip install PyQt5
  2. 终端指令安装Qt的工具包:pip install PyQt5-tools
  3. 打开PyCharm,File—>Settings—>External Tools 点击加号来添加自己的工具,在pip指令安装完成后会生成designer.exe,pyuic.exe,pyrcc.exe可执行文件,不需要另外安装其他软件。
  4. 🔰配置QtDesigner:
    Name:QtDesigner 【扩展工具名】
    Group:External Tools
    Program: F:\Python37\Lib\site-packages\qt5_applications\Qt\bin\designer.exe 【扩展工具执行文件路径】
    Working directory:$FileDir$ 【扩展工具工作目录为当前python工程的路径】

window系统终端指令where python得Python安装路径。 【F:\Python37\python.exe】
Python安装路径\Lib\site-packages\qt5_applications\Qt\bin 路径下有designer.exe文件,双击文件即可启动QT designer 。
Python安装路径\Scripts 路径下有pyuic5.exepyrcc5.exe文件

macos系统终端指令which python3.7得Python安装路径 (因为macos自带有python2,which python指令会返回版本2的位置,所以要指定新装的python版本)。【 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7】
/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/qt5_applications/Qt/bin/ 路径下有Designer.app文件,双击文件即可启动QT designer 。
/Library/Frameworks/Python.framework/Versions/3.7/bin/路径下有pyuic5pyrcc文件。

macOS转到指定文件夹快捷键:窗口+shift+g。除了Program路径改为macOS的外,其他配置与window一样。

  1. 🔰配置Pyuic:
    Name:Pyuic 【 扩展工具名】
    Group:External Tools
    Program: F:\Python37\Scripts\pyuic5.exe
    Arguments:$FileName$ -o $FileNameWithoutExtension$.py
    Working directory:$FileDir$ 【扩展工具工作目录为当前python工程的路径】

或者如下配置
Program:F:\Python37\python.exe 【扩展工具用python3执行文件打开】
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 【扩展工具为-m后面指定的PyQt5.uic.pyuic,将会指定FileName的ui文件转成指定FileName不带后缀名的py文件。】

  1. 🔰配置Pyrcc:
    扩展工具名 Name:Pyrcc
    Group:External Tools
    Program: F:\Python37\Scripts\pyrcc5.exe
    Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
    Working directory:$FileDir$
  2. 点击apply运用后点击ok,在工具栏Tools—>External Tools可以看到新增加的QtDesigner,Pyuic,Pyrcc

将ui文件转py文件

三种方法,可以使用指令,也可以配置Pyuic到pycharm方便使用

  1. 终端指令:python -m PyQt5.uic.pyuic Img_ui.ui -o Img_ui.py
  2. 终端指令:/Library/Frameworks/Python.framework/Versions/3.7/bin/pyuic5 Img_ui.ui -o Img_ui.py
  3. pycharm中,右键点击需要转格式的ui文件—>External Tools—>Pyuic
  • 需要转格式的ui文件前带绝对路径,或进入到该文件夹下输入终端指令。
  • 注意检查.ui文件,命名不能有空格。不然报错【Error: one input ui-file must be specified】
    Designer.exe 自动命名的名字中都有空格,会导致.py生成失败,自己进行重命名即可。

将图片转为ico,icns格式

PythonMagick将图片转为ico格式

将图片转为ico,安装image magick:pip install .../PythonMagick‑0.9.19‑cp37‑cp37m‑win_amd64.whl
whl下载链接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pythonmagick

直接pip install PythonMagick会报错,官方库没有该模块,所以要下载whl离线安装。
ERROR: Could not find a version that satisfies the requirement PythonMagick (from versions: none)
ERROR: No matching distribution found for PythonMagick

# 批量将png,jpg图片转化为ico图片
import os
import PythonMagick	# 该模块需要下载whl进行安装
#获取目录下文件名清单
files = os.listdir()
if not os.path.exists('icon'):
	os.mkdir('icon')  
#对文件名清单里的每一个文件名进行处理
for filename in files:
    portion = os.path.splitext(filename) # portion为名称和后缀分离后的列表
    if portion[1] ==".png" or portion[1] ==".jpg": # 如果为JPG则更改名字
        newfile = portion[0]+".ico" # 要改的新后缀#改好的新名字
        # 进行格式转换
        img = PythonMagick.Image(filename)
        img.sample('256x256')	
        path = os.path.join('icon',newfile)	
        img.write(path)
        print("%s --> %s" % (filename,newfile))     

iconutil将图片转为icns格式

通过iconutil生成icns文件,不需要安装模块软件。

  1. 打开终端输入:
    cd 文件夹目录
    mkdir icons.iconset
    即创建一个叫xxx.iconset的文件夹(xxx 自己定义)
  2. 文件夹目录下有MsgAppIcon.png图片,把MsgAppIcon.png图片转为不同大小的图片,并放入icons.iconset临时目录。
	sips -z 16 16  MsgAppIcon.png --out icons.iconset/icon_16x16.png
	sips -z 32 32  MsgAppIcon.png --out icons.iconset/icon_16x16@2x.png
	sips -z 32 32  MsgAppIcon.png --out icons.iconset/icon_32x32.png
	sips -z 64 64  MsgAppIcon.png --out icons.iconset/icon_32x32@2x.png
	sips -z 64 64  MsgAppIcon.png --out icons.iconset/icon_64x64.png
	sips -z 128 128  MsgAppIcon.png --out icons.iconset/icon_64x64@2x.png
	sips -z 128 128  MsgAppIcon.png --out icons.iconset/icon_128x128.png
	sips -z 256 256  MsgAppIcon.png --out icons.iconset/icon_128x128@2x.png
	sips -z 256 256  MsgAppIcon.png --out icons.iconset/icon_256x256.png
	sips -z 512 512  MsgAppIcon.png --out icons.iconset/icon_256x256@2x.png
	sips -z 512 512  MsgAppIcon.png --out icons.iconset/icon_512x512.png
	sips -z 1024 1024  MsgAppIcon.png --out icons.iconset/icon_512x512@2x.png
  1. 将这些不同尺寸的图片合并成mac电脑可用的图标icon.icns (保存在cd后的目录里):iconutil -c icns icons.iconset -o icon.icns

快速生成的shell脚本(.sh后缀),保存下面的代码为icns.sh。

  • 在终端输入:cd 图片MsgAppIcon.png所在目录路径
    执行sh脚本:sh icns.sh
# !/bin/bash
setIconImage(){
	sips -z 16 16  MsgAppIcon.png --out icons.iconset/icon_16x16.png
	sips -z 32 32  MsgAppIcon.png --out icons.iconset/icon_16x16@2x.png
	sips -z 32 32  MsgAppIcon.png --out icons.iconset/icon_32x32.png
	sips -z 64 64  MsgAppIcon.png --out icons.iconset/icon_32x32@2x.png
	sips -z 64 64  MsgAppIcon.png --out icons.iconset/icon_64x64.png
	sips -z 128 128  MsgAppIcon.png --out icons.iconset/icon_64x64@2x.png
	sips -z 128 128  MsgAppIcon.png --out icons.iconset/icon_128x128.png
	sips -z 256 256  MsgAppIcon.png --out icons.iconset/icon_128x128@2x.png
	sips -z 256 256  MsgAppIcon.png --out icons.iconset/icon_256x256.png
	sips -z 512 512  MsgAppIcon.png --out icons.iconset/icon_256x256@2x.png
	sips -z 512 512  MsgAppIcon.png --out icons.iconset/icon_512x512.png
	sips -z 1024 1024  MsgAppIcon.png --out icons.iconset/icon_512x512@2x.png
}

mkdir icons.iconset
setIconImage
iconutil -c icns icons.iconset -o icon.icns

打包python代码程序

使用pyinstaller把python项目打包成window下可执行的应用

pyinstaller 是一个可以将 Python 代码打包成一个可执行文件的工具,它会将你的 Python代码和所有依赖项打包成一个单独的可执行文件,让你的代码可以在没有Python解释器的情况下运行。这使得你可以将你的 Python 应用程序发布给没有安装 Python 的用户,或者将它们放在没有 Python 环境的机器上。

打开终端cmd安装模块:pip install pyinstaller
查看参数:pyinstaller -h

pyinstaller常用参数说明
-icon=图标路径设置图标【-i后面一个空格加图片地址,建议放在同一文件夹下】
-F打包成一个exe文件。(表示在 dist 文件夹下只生成单个可执行文件(内部包含所有依赖),不加默认会在 dist 生成一大堆依赖文件 + 可执行文件。)小项目可以采用,打开比较慢,多个 .py 打包时不能使用。
-D默认参数,打包结果放入到创建的文件夹中,可以看到里面有很多的依赖文件。与 -F 相反用法。-F -D 互斥参数。
-w隐藏命令行运行窗口【即使用项目的 GUI 界面,无 cmd 控制台】(如果你的程序是有界面的,可以不写这个参数。但是测试情况下建议先加上这个参数,因为如果打包不成功,运行时报错信息会在控制台上输出,没有控制台就看不到报错信息。)
-c默认参数,使用cmd 控制台,无窗口。如果打包文件执行报错,可尝试用 -c 显示控制台。-w -c 互斥参数
-p表示自己定义需要加载的类路径,项目中包含多个自建模块的时候需要加上 -p aaa.py -p bbb.py -p ccc.py。
-i将 ico 图标打包到 exe 文件中。表示可执行文件的图标,后面跟图标的路径。(例 -i "icon.icns"Mac 下图标文件为 icns 格式, Winico 格式)。
–name设置打包后的应用名称,例 --name “小程序”。
–hidden-import打包时导包信息。后面跟模块名如 queue,用于告诉打包程序某个模块我用不着你不用打包进去。打包 PyQt 项目强烈建议带上参数 --hidden-import PyQt5.sip
-n执行项目的名称,默认 .py 的文件名

window终端输入:
E: 从默认的C盘进入E盘
cd (current/change directory) 当前目录或改变目录

在项目的根目录下执行打包命令 示例:

  • 打包为无 cmd 控制台的单个exe文件:pyinstaller -F -w --icon=“窗口文件图标绝对路径” 文件名.py
  • 打包生成不带后台的exe文件:pyinstaller -F xxx.py --noconsole
  • 改变图标:pyinstaller -F --icon=3.ico xxx.py

🔰打包成功后xxx.exe在当前目录的dist目录下。执行xxx.exe,程序可以正确运行。 如果要给别人用,需要把整个"xxx"文件夹都打包送走。
🔰完成后生成三个文件夹“__pycache__”(缓存)、“build”(临时文件)、“dist”(生成文件)和 一个文件“xxx.spec”(配置文件)

使用 py2app 把python项目打包成mac下可执行的应用

安装模块:pip3.7 install py2app

  1. 进入工程目录下面: cd yourProjectDirctory
  2. 生成 setup.py 文件: py2applet --make-setup MyApplication.py
    指定图标:py2applet --make-setup MyApplication.py --iconfile images/icon.icns
    如指令实现不了可修改setup.py文件来指定app图标

注意:不能将icon.icns与主脚本MyApplication.py放在同一文件夹下。它必须放在像images/这样的子文件夹下,否则setup.py中会出现DATA_FILE=[‘–iconfile’],这将失败,因为这不是一个数据文件。
Mac 下图标文件为 icns 格式, Winico 格式。

如果执行命令显示-bash: py2applet: command not found,表示未能找到py2applet。
解决办法:通过命令查找“py2applet”的所在位置。 $ sudo find / -name “py2applet” -type f
此时会要求输入密码,输入密码并按回车。(可能不显示输入的字符) 执行命令后,在查找结果中,会有我们需要的位置路径。
例如:/Library/Frameworks/Python.framework/Versions/3.6/bin/py2applet

  1. 清空以前生成的编译文件: rm -rf build dist
  2. 生成mac下的应用:
    给其他没有sdk的电脑使用,包括lib库(没有安装sdk的电脑使用,需要去掉-A,将把所有的依赖全部打包): python3.7 setup.py py2app
    打包速度快,需要依赖库(自己开发可以使用这种方式):python setup.py py2app -A
  3. 生成的应用在dist目录下面,可以双击运行MyApplication.app,只需将MyApplication.app文件发送,就可以在其他电脑运行(不需要安装配置环境)
# 修改setup.py文件,指定app图标
from setuptools import setup

APP = ['./demo/demo.py']        # APP启动的py文件,用绝对路径
DATA_FILES = []     # 自写模块放在DATA_FILES列表中,如项目内其他文件['test.py', 'test2.py']        
OPTIONS = {         # 第三方库放在OPTIONS下的includes对应的列表中,如'includes' : ['requests']
    'iconfile':'./demo/images/icon.icns',  # APP图标,用绝对路径
     'plist': {'CFBundleShortVersionString':'0.1.0'}  # APP 版本,软件右键get info可看到版本信息。
}   
setup(
    app=APP,
    data_files=DATA_FILES,
    # name = 'demo1',  # 软件名字,没有默认为APP启动的py文件名
    options={'py2app': OPTIONS},    # 将所有文件打包成一个exe,如果无此代码则会在dist文件夹内生成许多依赖的文件,加上此代码则会把依赖文件都加入一个exe,发给他人使用时不依赖对方机器环境
    setup_requires=['py2app'],
)
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值