从Noob开始学习python/pyqt5(1)环境安装,工程搭建与打包exe
前言
本人从今年4月份左右开始想自学python和pyqt5,主要是想提升一下自己的技能,我是一个汽车电子嵌入式软件工程师,每天就是C语言和AutoSAR,感觉都不好意思自称为一个“码农”,于是乎在一个大哥的建议下,我开始了自学python,选择pyqt5则是因为希望能开发出一点小工具来服务我的本职工作,double win。写这个学习笔记一是想记录自己自学路上的点滴,激励自己,也可以给需要的朋友一点参考。
学习过程中踩了很多坑,很多都是工具版本和电脑开发环境造成的,所以在文章开始,介绍一下我使用的环境:
64位windows10
python 3.6.3
pycharm社区版(2018/1/4)
环境安装
环境的安装参考了CSDN很多前辈的帖子,主要要做的就是安装python,用python的pip(可以理解为python自己的appstore,里面可以下载很多工具)。
python安装
官网:https://www.python.org/
去download里面找到自己要用的版本和适合自己操作系统的下载包,下载安装即可,要注意的是要记得勾选将python自动加入环境变量PATH的选项。
安装好后可以打开cmd窗口(在任意文件夹空白处shift+右键即可)输入python,可以查看自己安装的信息:
PyQt5安装
之后就是安装pyqt5了,可能会提醒要你更新pip,只需要按照命令窗口里的提示输入即可。
关于pyqt5和装完后要装的pyqt5-tools,建议用douban的镜像,下载速度不是快一点半点,在命令行输入以下命令来安装:
pip install PyQt5 -i https://pypi.douban.com/simple
pip install PyQt5-tools -i https://pypi.douban.com/simple
安装完成后,在python的安装目录的这个路径下能找到,记得讲tools的路径加入环境变量。
在命令窗口输入
pip list
也能看到你用pip安装的所有工具:
PyCharm安装
Pycharm直接去官网下载即可:http://www.jetbrains.com/pycharm/download/#section=windows
这里提倡大家不要用破解版,社区版是免费的。毕竟大家都是软件开发者,互相尊重一下。
PyCharm中建立第一个工程
配置
环境和工具安装好后我们终于进入了实战,首先打开PyCharm后,要进行一系列配置,首先从project interpreter开始:
File->settings->project interpreter
选择你的python.exe:
接下来配置我们要用的工具。
File->settings,添加external tools
点击绿色的加号来添加一个工具,qt的exe就在之前安装的pyqt5-tools内:
这个工具配置可以让你用pycharm这个IDE来打开qtdesigner。
接下来添加下一个工具:
这里的program要选择安装的python.exe,参数那里填:
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
这个工具其实是一个脚本,用处就是把你用qtdesigner设计的ui界面从ui格式转化为py!
现在我们的前期配置工作到此完成。
UI设计
在tools里选择刚添加的Qtdesigner,打开后就是qt的界面设计画面。
UI转PY
界面设计好后,保存在项目路径下,这时你会看到项目里已经有了刚保存的ui文件:
右键ui文件,选择刚添加的外部工具PyUIC,把ui文件转换为py文件:
UI与逻辑的分离
接下来要做的,是分离UI和逻辑,这非常重要,我们要达到的效果就是,如果你的UI更改,你只需要重新转换一次ui成py,而你处理业务逻辑的代码不用更新,这里拿我另一个工程为例:
MG_MainWindow.ui是用qtdesigner做出来的界面文件,MG_MainWindow.py是由它转换而来,而这个界面所有的逻辑处理,我会放在另一个py文件MainWindow_Business.py中:
MG_MainWindow.py:
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'MG_MainWindow.ui'
#
# Created by: PyQt5 UI code generator 5.11.2
#
# WARNING! All changes made in this file will be lost!from PyQt5 import QtCore, QtGui, QtWidgetsclass Ui_MainWindow(object):def setupUi(self, MainWindow):MainWindow.setObjectName("MainWindow")MainWindow.resize(863, 642)self.centralwidget = QtWidgets.QWidget(MainWindow)self.centralwidget.setObjectName("centralwidget")self.pushButton = QtWidgets.QPushButton(self.centralwidget)self.pushButton.setGeometry(QtCore.QRect(110, 210, 75, 23))self.pushButton.setObjectName("pushButton")MainWindow.setCentralWidget(self.centralwidget)self.menubar = QtWidgets.QMenuBar(MainWindow)self.menubar.setGeometry(QtCore.QRect(0, 0, 863, 23))self.menubar.setObjectName("menubar")MainWindow.setMenuBar(self.menubar)self.statusbar = QtWidgets.QStatusBar(MainWindow)self.statusbar.setObjectName("statusbar")MainWindow.setStatusBar(self.statusbar)self.retranslateUi(MainWindow)QtCore.QMetaObject.connectSlotsByName(MainWindow)def retranslateUi(self, MainWindow):_translate = QtCore.QCoreApplication.translateMainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))self.pushButton.setText(_translate("MainWindow", "PushButton"))
MainWindow_Business.py:
from PyQt5 import QtWidgets
from MG_MainWindow import Ui_MainWindow
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):def __init__(self, parent=None):super(MainWindow, self).__init__(parent)self.setupUi(self)
接着,我建立一个main.py文件来放置让界面可以运行起来的代码:
main.py:
import sys
from MainWindow_Business import MainWindow
from PyQt5 import QtWidgetsif __name__ == "__main__":app = QtWidgets.QApplication(sys.argv)mainWindow = MainWindow()mainWindow.show()sys.exit(app.exec_())
最后在pycharm里右键run main.py的效果就是:
至此,我们做出了一个最简单的界面并让它在IDE里run了起来。
打包成EXE
好了,曾经最让我头疼的部分来了,目前做出来的东西只能在安装了python环境的PC上(个人电脑)运行,如果我想在公司也用我自己制作的工具,那就需要将py文件打包成exe,好在windows环境下也能运行。
打包python,主流的工具有:
py2exe
cx-Freeze
pyinstaller
其中py2exe我一直没研究清楚,所以本文中不会讨论。
pyinstaller:我试了好几个小时,一直没能成功,每次都警告我找不到一些api-ms-***的动态库,后来我在pyinstaller的github页面看到了针对我这个问题的讨论,看起来win10上是没法正常使用了,我甚至无法打包最简单的helloworld.py
最终我转投了cx-Freeze:
cx-Freeze的下载安装也在pip中进行
pip install cx-Freeze
使用时,建议使用写setup.py运行的方法,以下是我的例子,这个文件跟其他py文件放在一起:
from cx_Freeze import setup, Executable
import sys
base = 'WIN32GUI' if sys.platform == "win32" else Noneexecutables = [Executable("main.py", base=base,targetName='MetalGear.exe',icon="icon1.ico")]
py_modules = ['main','MainWindow_Business','MG_MainWindow']packages = []
include_files=[]
options = {'build_exe': {'packages':packages,'include_files': include_files},}setup(name = "prog",options = options,version = "1.0",description = 'desc of program',executables = executables
)
其中icon1.ico是图标,在这个路径下打开控制台,输入命令可以开始打包,你也可以建立一个.bat脚本:
python setup.py build
之后会在当前目录建立一个build文件夹,你的exe就在里面:
双击exe运行界面:
关于打包工具cxFreeze,它的功能还有很多,我今后还会持续研究。
就这样,我们将py工程打包成了在windows环境下也能运行的exe。
从Noob开始学习python/pyqt5(1)环境安装,工程搭建与打包exe相关推荐
- python新手之一环境安装
今天开始学习python,首先环境安装 1.下载安装 在https://www.python.org/downloads/下载python2.X或者3.X(ps:这里建议下载32位的python ,因 ...
- python学习笔记1之-python简介及其环境安装
python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...
- 第一章 Python Kivy 学习 -- Kivy介绍及环境安装
系列文章目录 第一章 Python Kivy 学习 – Kivy介绍及环境安装 第二章 Python Kivy 学习 – Kivy项目开发原理(待编辑) 第三章 Python Kivy 学习 – Ki ...
- 自学python需要安装什么-Python自学之环境安装
原标题:Python自学之环境安装 网上有各种Python环境安装的教程,看似简单但只有自己亲身实践才知有好多坑.作者在Windows 7 32位操作系统下部署Python环境(这里遇到的一个坑是Wi ...
- Spark学习笔记[1]-scala环境安装与基本语法
Spark学习笔记[1]-scala环境安装与基本语法 正所谓工欲善其事必先利其器,Spark的开发语言不是java而是scala,虽然都是运行于JVM,但是两门语言的基本特性还是有些不一样,这里 ...
- python + uiautomator2编译平板语言工具并切换打包exe可执行文件
python + uiautomator2编译平板语言工具并切换打包exe可执行文件 初版: 在命令行输入 adb shell am monitor 2.点击打开要获取包名的应用 3.在命令行则会显示 ...
- 深度学习之pytorch(一) 环境安装
快2周没更新博客了,别问为什么!我才不会告诉你忙的飞起!说心里话,个人更喜欢用tensorflow来做深度学习! 一.环境配置 1.win10 64位系统: 2.anaconda3: 3.不管是CPU ...
- bash: go: 未找到命令_【安全入门】centos7java/python/go语言环境安装
搞技术的肯定都得有几台虚拟机,同时也得弄几个vps,尤其是做网安的,复现个环境,最少用一个虚拟机.不管是开发还是做网络安全(脚本小子),linux机器是必备,一般选ubuntu或者centos 7,每 ...
- python与数值计算环境安装
数值计算的编程的软件很多种,也见过一些编程绘图软件的对比. 利用Python进行数值计算,需要用到numpy(矩阵) ,scipy(公式符号), matplotlib(绘图)这些工具包. 1.Linu ...
最新文章
- 互联网50年类脑架构技术演化图
- 已解决:pod资源清单yaml中各字段详解
- 测开之路十五:构造函数、析构函数
- Python flask出现jinja2.exceptions.TemplateNotFound错误(修复host就好了???)
- Unity 2017 Game Optimization 读书笔记(1)Scripting Strategies Part 1
- Hibernate 系列 02 - Hibernate介绍及其环境搭建
- awk高级企业级使用案例
- 耐驰测试仪上的软件,Proteus
- 修改火狐扩展之自定义hackbar
- c语言互不相同删除法,GitHub - MXHDOIT/C_Practice: 100道C语言经典习题
- 神器分享:字母汉字图标ICON生成器
- Ubuntu16.04配置GPU驱动(GTX1060)+ CUDA9.0 + CUDNN7.0.5
- input文本框--去首尾空格
- Lost connection to MySQL server during query问题
- 如何将旧Mac的数据迁移到新的MacBook Pro
- python设计一个动物类_【Python】每日一练:设计圆类计算周长和面积、设计动物类...
- Matlab绘制各种小波函数及尺度函数图
- 美的地产竞得石家庄50亩地块 美的布局开始
- 8750H带的动MATLAB2019吗,i7-8750H处理器对比7代i7-7820HK跑分测试
- 【知乎(从第10人开始最新补充)】你熟知的领域有哪些重要的知识或思维方法,业外人士因爲不瞭解它們而常常陷入困境?
热门文章
- aptio2018设置u盘启动_系统重装u盘启动怎么设置_重装系统设置U盘启动的步骤-win7之家...
- 模型过拟合原因及解决办法
- 【selenium】Windows平台下使用python自动登陆网关 (更新至 v1.1.0)
- 架构思想--基础架构
- 【附源码】Python计算机毕业设计社区养老信息管理系统
- [Spark的TopN算法实现]
- thinkpad开机键在哪
- 联想Y510p笔记本台达电版电源型号和参数
- 苹果iPhone自研PC处理器架构细节曝光:性能对比Intel直接溢出
- autoCAD2002-2022安装教程