python开发上位机 - PyCharm环境搭建、安装PyQt5及工具
目录
简介:
一、安装PyCharm
1、下载 PyCharm
2、PyCharm安装
1)配置安装目录
2)安装选项
3、问题及解决方法
二、安装PyQt5
1、打开 Pycharm,新建 Project
2、安装 pyqt5
3、安装很慢怎么办?
4、安装 pyqt5-tools
三、Pycharm添加外部工具
1、添加 qt designer
2、添加 PyUIC
3、添加 pyinstaller
简介:
本文主要介绍搭建PyCharm环境,并安装PyQt5及工具,使用python开发上位机。
主要包括3部分:
- 安装PyCharm
- PyCharm安装PyQt5
- PyCharm安装 Qt Designer、PyUIC、pyinstaller工具
Qt Designer、PyUIC、pyinstaller工具介绍:
- Qt Designer 用来设计UI;
- PyUIC 用来将设计好的.ui文件转换为Python代码;
- pyinstaller 能够在Windows、Linux、 Mac OS 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。在Windows上使用就打包成.exe文件。在Mac上使用就打包成mac app;
一、安装PyCharm
windows中需要先安装python,安装过程简单不再赘述。
python官方下载地址:https://www.python.org/downloads/windows/
已安装可以用 python --version 命令查看python版本。
1、下载 PyCharm
官方链接:https://www.jetbrains.com.cn/

根据介绍,PyCharm有2个版本,成熟的 Professional Edition 和 免费的 Community Edition

我下载的是免费版本

选择下载后,会有如下弹框,下载即可

2、PyCharm安装
1)配置安装目录

2)安装选项
这里我是全部选上,可以根据需求决定是否勾选

下一步,安装即可

重启后, 生成软件

3、问题及解决方法
win7系统运行安装好的PyCharm后,弹出如下报错框 "无法定位程序输入点 CreateAppContainerProfile 于动态链接库USERENV.dll 上。"。原因:在pycharm 2019.3版本之后就不再支持win7的系统了

解决方法:
(1) win7系统进行重装pycharm 2019.3之前的版本;
(2) win7系统在pycharm安装目录下打开bin文件夹,找到pycharm.bat文件,双击打开就可以成功运行了,而且不会对后续代码调试过程产生任何影响,但是会在后面运行一个cmd窗口,窗口被关闭pycharm也会跟着结束运行;

二、安装PyQt5
PyQt就是使用Python对Qt进行了封装,而PyQt5则是PyQt的一个版本。
PyQt5与Qt的关系如图:

PyQt5可以使用PyCharm来安装,也可以使用pip的方式安装。这里介绍PyCharm方式
1、打开 Pycharm,新建 Project

2、安装 pyqt5
File ->Settings -> Python Interpreter

Python Interpreter -> 选择 "+" 添加

输入"PyQt5",选择安装项,点击 Install Package 安装即可,如图:

3、安装很慢怎么办?
在国外镜像源地址安装很慢,经常出现 "read timed out" 报错,可以尝试使用国内镜像源地址:
- 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
- 阿里云 http://mirrors.aliyun.com/pypi/simple/
- 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣(douban) http://pypi.douban.com/simple/
- 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
选择 "Manage Repositories",这里我添加清华的源

添加后如图:

选中清华源的PyQt5,"Install Package"安装。 完成后会有成功提醒

4、安装 pyqt5-tools
步骤同上,不再赘述

安装好后,打开 designer.exe 所在位置,我用Everything工具查看安装的位置如图:

三、Pycharm添加外部工具
1、添加 qt designer
配置PyCharm是为了在Pycharm里面实现打开qt designer,然后生成qt文件,然后将qt文件转换成python语言的软件文件
选择 File ->Settings -> Tools -> External Tools,然后点击"+" 添加,如图:

添加好后,如图:

之后就可以通过 Tools ->External Tools -> Qt Designer 打开 designer.exe 了。
2、添加 PyUIC
pyuic5 组件的功能就是将我们设计的.ui文件转为.py文件,添加操作同上。
配置四个参数:
- Name:PyUIC;
- Program:pyuic5.exe的路径;
- Arguments:设置为 "$FileName$ -o $FileNameWithoutExtension$.py"。$FileName$表示文件名,$FileNameWithoutExtension$表示没有扩展名的文件名;
- Working directory:设置为$FileDir$。$FileDir$表示文件所在的路径;

选中 .ui 文件,再选择 Tools ->External Tools -> PyUic 即可将 .ui转化为.py。

3、添加 pyinstaller
PyInstaller是一个在Windows、Linux、macOS等平台下打包为独立可执行文件的工具。
1)安装
过程同上,不再赘述

2)添加配置

- Program:pyinstaller.exe安装好的位置;
- Arguments:--noconsole --onefile $FileName$。$FileName$表示要打包的Python脚本文件,--onefile表示生成单一打包文件;
- Working directory:$FileDir$;

到这里,python的上位机开发环境已经搭好了。
相关文章:
python开发上位机 - PyCharm环境搭建、安装PyQt5及工具
目录 简介: 一、安装PyCharm 1、下载 PyCharm 2、PyCharm安装 1)配置安装目录 2)安装选项 3、问题及解决方法 二、安装PyQt5 1、打开 Pycharm,新建 Project 2、安装 pyqt5 3、安装很慢怎么办? 4、安装 pyq…...
day02-安装虚拟机
1. 安装配置 前面一直下一步就OK 2. 虚拟机操作系统配置 语言 中文 软件安装: 最小安装,标准,调试工具,开发工具,系统工具,man手册 网络和主机名配置 主机名,自己起名字 网络配置 常规 &g…...
Qt:线程
一个Qt窗口生成后,为什么拖动窗口,窗口可以随着鼠标移动或放大缩小 因为对窗口操作后,都有对应的事件产生,Qt在其框架中对这些事件进行了默认处理 一个Qt程序默认只有一个线程,称为主线程(也叫ui线程&#…...
VisionPro二次开发学习笔记11-使用 Caliper和Fixture定位Blob工具检测方块
该示例演示了如何使用卡尺工具和夹具工具来固定 Blob 工具。示例代码将检测图像上部区域中小方块的存在。当点击“运行”按钮时,将读取一张新图像。卡尺工具将被运行,卡尺工具的输出 Y 信息将传递给夹具工具。夹具工具使用来自卡尺工具的 Y 信息和新图像…...
高翔【自动驾驶与机器人中的SLAM技术】学习笔记(五)卡尔曼滤波器一:认知卡尔曼滤波器;协方差矩阵与方差;
卡尔曼滤波器 为了研究卡尔曼,我阅读了大量博文。不敢说完全吃透,但是在做一件什么事,可以通过下面这文章来理解,我读了不下五遍。并整理标准重点,添加自己的一些见解。 自动驾驶传感器融合算法 - 自动驾驶汽车中的激…...
【Go】通过反射解析对象tag信息,实现简易ORM
反射是运行时,需要在运行时解析类型信息,编译期无法优化这些操作,因此比编译时已知类型信息的直接调用效率要低。 package mainimport ("fmt""reflect""strings" )type Person struct {Name string json:&quo…...
gemini2相机和宇树雷达L1的使用注意点
gemini2相机: 官方资料:Gemini2深度相机 (yahboom.com) 目前深度这一块智能提供某一点的深度数据,没有提供某一点的世界坐标,虽然网上有文章说是可以计算 已知深度图,获得某个像素点的三维坐标_深度图如何知道特征点的3d坐标-CS…...
FPGA开发——verilog随机涵数$random的使用方法
一、概述 我们进行FPGA开发的过程中在做仿真的时候,难免会需要一些数据作为输入。有的时候需要输入大量的数据对于设计结果进行一个验证,如果逐个去进行输入,就需要花费大量的时间。这种情况下我们通常会想到使用随机数。随机数在我们的日常…...
Android14 WPA2和WPA3 类型的WiFi网络连接
Android14 WPA2和WPA3 类型的WiFi网络连接 文章目录 Android14 WPA2和WPA3 类型的WiFi网络连接一、前言二、源码分析1、Android原生Settings 连接WPA 和WPA3 网络的配置代码 三、其他1、WPA/WPA2和WPA3连接小结2、WPA配置无法连接WPA3的网络的情况Android11 Wifi 加密类型详解 …...
24/8/5算法笔记 逻辑回归sigmoid
今日是代码对sigmoid函数的实现和运用 #linear_model线性回归 #名字虽然叫逻辑回归,作用于分类 #分类:类别 #回归:预测 from sklearn.linear_model import LogisticRegression 实现函数 import numpy as np import matplotlib.pyplot as pl…...
适用于验证码的OCR,识别快速,使用简单!
环境 windows 11python 3.9 前言 Muggle OCR 是一个高效本地 OCR 模块,旨在通过简单的几步设置提供强大的文本识别功能,无论是在处理印刷文本还是解析验证码,都能让用户在工作中畅通无阻。Muggle OCR 易于安装和使用,支持双模型&a…...
超简单适合练手的双指针题:判断子序列
给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列&#…...
打破老美垄断,潘展乐商业价值起飞
文|琥珀食酒社 作者 | 积溪 奥运会上的潘展乐 真是牛逼坏了 拿下男子100米自由游金牌 打破欧美长达近百年垄断 搞定男子4x100米混合泳金牌 终结了美国在这项目上 10年不败的神话 比赛前 美国选手对他爱答不理 招呼都不打 比赛后美国选手想套热乎 潘展乐…...
java面试题:简化URL
1 问题场景 编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。 注意:字符串长度在 [0, 500000] 范围内。 2 答案 2.1 解决方案一 直接使用String方法解决 public s…...
用 echarts 开发地图、点击展示自定义信息框
1、下载所需地市的json 链接:DataV.GeoAtlas地理小工具系列 在右侧输入需要的名称,然后下载json文件到本地 2、在html 中准备容器,并设置宽高 <div id"mapContent"> <div ref"mapChart" style"width:10…...
Android 应用兼容性变更调试
引言 本文将介绍如何调试和解决这些兼容性问题,并记录调试过程中实际操作的步骤和方法。在Android应用开发中,随着Android系统版本的不断更新,应用的兼容性问题变得越来越复杂。 推荐:《Android系统开发中高级定制专栏导读》08-03 16:04:53.518 6555 6555 D Compatibili…...
76 多态
多态(polymorphism)是指基类的同一个方法在不同派生类对象中具有不同的表现和行为。 派生类继承了基类的行为和属性之后,还会增加某些特定的行为和属性,同时还可能会对继承来的某些行为进行一定的改变,这都是多态的表现…...
数据采集工具之Canal
本文主要介绍canal采集mysql数据的tcp、datahub(kafka)模式如何实现 1、下载canal https://aliyun-datahub.oss-cn-hangzhou.aliyuncs.com/tools/canal.deployer-1.1.5-SNAPSHOT.tar.gz canal的原理类似于mysql的主从复制,canal模拟的是从节点拉取主节点的binlog数…...
【后端】消息中间件小册
1.RabbitMQ RabbitMQ 是一个流行的消息中间件系统,采用 AMQP(高级消息队列协议)来管理消息的传递。它的工作原理涉及多个组件和机制来确保消息的可靠性和完整性。以下是 RabbitMQ 的基本工作原理以及如何保证消息不丢失的机制: R…...
【进阶篇-Day14:JAVA中IO流之转换流、序列化流、打印流、Properties集合的介绍】
目录 1、转换流1.1 转换流分类:1.2 转换流的作用(1)按照指定的字符编码读写操作:(2)将字节流转换为字符流进行操作: 2、序列化流2.1 序列化的基本使用:2.2 序列化的操作流程…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
日常一水C
多态 言简意赅:就是一个对象面对同一事件时做出的不同反应 而之前的继承中说过,当子类和父类的函数名相同时,会隐藏父类的同名函数转而调用子类的同名函数,如果要调用父类的同名函数,那么就需要对父类进行引用&#…...
HTML前端开发:JavaScript 获取元素方法详解
作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...
leetcode73-矩阵置零
leetcode 73 思路 记录 0 元素的位置:遍历整个矩阵,找出所有值为 0 的元素,并将它们的坐标记录在数组zeroPosition中置零操作:遍历记录的所有 0 元素位置,将每个位置对应的行和列的所有元素置为 0 具体步骤 初始化…...
