使⽤PyQt5进⾏开发
1安装环境
(具体根据安装版本的不同,会有所差异)
如何安装2019Pycharm最新版本-详细教程
Anaconda+Pycharm+PyQt安装教程
PyCharm+PyQt5+QtDesigner的正确配置
2 GUI开发
尽善尽美之作《Python Qt GUI与数据可视化编程》
第⼀个PyQt5项⽬
PyQt5中⽂教程
3 相关课题
python获取设备硬件信息:
⽤PyQt5.0制作⼀个GUI应⽤程序(结合Eric6,使⽤QT设计师)
使⽤pyinstaller打包Python3.5+PyQt5.6项⽬⽣成exe⽂件
如何使⽤Python编写⼀个⼆维码⽣成器?如何实现?
Pyqt+QRcode ⽣成识别⼆维码
加密
4 相关资料检索
需要安装的依赖库:
pyinstaller, pyqt5, qrcode, wmi, requests, rsa, psutil, pywin32, pillow
A 关键信息
1)获取本机MAC地址
基于java的网页设计MAC地址直译为媒体存取控制位址,也称为局域⽹地址,MAC位址,以太⽹地址或物理地址,由⽹络设备制造商⽣产时写在硬件内部。
在OSI模型中,第三层⽹络层负责IP地址,第⼆层数据链路层则负责MAC位址。MAC地址⽤于在⽹络中唯⼀标⽰⼀个⽹卡。⼀台设备若有⼀或多个⽹卡,则每个⽹卡都需要并会有⼀个唯⼀的MAC地址。
本地获取MAC地址的⽅法:
cmd->ipconfig/all,可以查看。
解释:
以太⽹适配器本地连接:指有线⽹络连接;以太⽹适配器 Bluetooth连接:蓝⽛⽹络连接;媒体已断开:指当前没有活动,未连接;
两个是VMware :⼀个是本地虚拟⽹卡,⼀个就虚拟机⽹卡,虚拟机与物理⽹络要建⽴⽹络桥接,必须要有两个虚拟⽹卡;
隧道适配器:IPv4⽹络与IPv6过度的⼀种机制,实现IPV4与IPV6通信;本地连接3产⽣的原因:⼀块⽹卡,插在不同的插⼝了,每换⼀回,就多⼀个;另⼀个是安装了虚拟⽹卡原因造成。
linux培训机构排名选兄弟连学院以太⽹适配器本地连接和以太⽹适配器以太⽹:可理解是同⼀种东西,应该是⽹卡驱动异常导致。⽹络适配器总体分为:有线,⽆线,虚拟。推荐书:《⽹络⼯程师基础教程》。
2)获取本机外⽹IP地址
公⽹IP是指以公⽹连接Internet上的⾮保留地址。公⽹、内⽹是两种Internet的接⼊⽅式,公⽹的计算机和Internet上的其他计算机可随意互相访问。
程序获取:
⽬前常⽤的思路是爬⾍,即去访问能够返回IP信息的⽹页,通过正则表达式匹配的⽅法来读取本机外⽹IP地址。
但是存在⼀个问题:单纯的程序发送⽹址,只会收到⼀个单纯的对于该页⾯访问的请求,但是服务器并不知道发送这个请求使⽤的浏览器,操作系统,硬件平台等信息。
⽽缺失这些信息的请求往往都是⾮正常的访问,例如爬⾍,因此可能会被禁⽌访问。解决⽅法是需要在请求中添加UserAgent的信息。
User-Agent:简称UA,它是⼀个特殊的字符串头,可以使服务器识别客户使⽤的操作系统及版本、浏pycharm python安装教程
览器及版本等信息。在做爬⾍时加上此信息,可以伪装为浏览器;如果不加,很可能会被识别出为爬⾍。
1 本机浏览器的UserAgent查看:
针对chrome: 地址栏输⼊:about:version 回车即可到userAgent信息
针对其他浏览器:地址栏中输⼊:javascript:alert(navigator.userAgent) 回车
2 也可以通过使⽤fake-useragent库,⽣成合法的UA:
安装fake-useragent库:pip install fake-useragent
使⽤fake-useragent库:
# python 程序
from fake_useragent import UserAgent
ua = UserAgent()
ua.ie #ie浏览器
ua.chrome
ua.firefox
ua.random #通过真实的浏览器使⽤统计随机
B ⼀种UI⼯具:Qt Designer
编程源码网站1)预览:ctrl+R
2)使⽤pyuic将.ui⽂件转换为.py⽂件(界⾯⽂件),后者随前者变化⽽变化。
3)显⽰和业务逻辑的分离:界⾯⽂件和逻辑⽂件
4)按钮实现流程:
按钮是信号发射者,单击按钮后会发射⼀个信号,通过代码函数内部的通信机制获得这个按钮的单击事件被连接到的窗体操作,然后通知接收者窗体,运⾏槽函数。
5) PyQt有哪些默认的信号和槽,如何使⽤。
C ⽣成⼆维码⼯具
安装qrcode库等
awk什么意思pyinstaller踩过的坑及解决办法:
基本指令:pyinstaller -F -w CallGetTerminalInfo.py
新建虚拟python环境:因为python如果是惯⽤环境,打包出来的可执⾏⽂件⼤⼩⽐较⼤
压缩包⼯具:upx
错误提⽰:Failed to execute script xxx + console窗⼝闪退
可能原因:⼀切语句
解决⽅案:笨⽅法,下载⼀个录屏软件,根据控制台显⽰排查问题所在。
版本问题:pyinstaller和qt5版本不匹配问题 -> 解决⽅法:重装pyqt5或者降低pyqt5的版本
⽹络问题:Socket延时问题/远程连接被识别断开/防⽕墙问题 -> 解决⽅法:调整算法
语句适配性问题:⽆法到问题 -> 解决⽅法:在.py⽂件开头增加如下语句:
import sys, os
if hasattr(sys, 'frozen'):
以及其他问题。
相关⽹络异常错误补充:
1、遇到⽹络问题(如:DNS 查询失败、拒绝连接等)时,Requests 会抛出⼀个 ConnectionError 异常。
2、如果 HTTP 请求返回了不成功的状态码, Response.raise_for_status() 会抛出⼀个 HTTPError 异常。
3、若请求超时,则抛出⼀个 Timeout 异常。
4、若请求超过了设定的最⼤重定向次数,则会抛出⼀个 TooManyRedirects 异常。
5、所有Requests显式抛出的异常都继承⾃ ptions.RequestException 。
Python学习⽇记4|python爬⾍常见报错⼩结及解决⽅法
如何使⽤pyinstaller打包32位的exe程序
额外参考资料:如何实现以上功能(C++)
获取本机内⽹、外⽹ip(C++):
关键信息:
IIP:
获取外⽹ip:
1、通过ip源,下载其脚本⽂件并保存。
2、保存⽂件中有外⽹ip,解析出来
获取外⽹ip所需要的IP源:(⼏乎所有可以显⽰IP地址的⽹页都可以成为IP源)
www.ipchicken/
whatismyipaddress/
www.ip138/ip2city.asp
LIP:
获取内⽹ip:
1、通过系统函数gethostname得到主机名。
2、通过主机名得到内⽹ip。
MAC:
1. 通过内置的NetApi3
2.DLL的功能来实现的。
⾸先通过发送NCBENUM命令获取⽹卡的数⽬和每个⽹卡的内部编号;
然后对每个⽹卡标号发送NCBASTAT命令获取其MAC地址。
1. ipconfig /all重定向管道
HD:
WMI/DeviceIoControl接⼝
⼆维码:qrencode
RSA:openssl
拓展:
1)如何判断⾃⼰的IP是真实外⽹IP:
2)python程序迁移到linux中可能需要做的调整:
pyinstaller在Linux上的使⽤⽅法,⽤法与windows⼀致:
检查运⾏⽅式,所调⽤的模块,以及⼀些相关函数,在linux环境下是否需要修改;
linux系统下获取硬件信息:
linux系统下使⽤python获取硬件信息的⽅法:ipconfig重定向⽅法:
3)以pyinstaller打包⽣成的可执⾏程序为例,主要包含什么内容:
素材网址piankuli exe⽂件:可执⾏⽂件(executable file),它可以加载到内存中,并且由操作系统加载程序执⾏,是可以在操作系统存储空间中浮动定位的可执⾏程序。exe⽂件分为两个部分:exe⽂件头和程序本体。exe⽂件⽐较复杂,属于多段的结构,可以说是dos最成功和最复杂的设计之⼀了。使⽤pyinstaller打包python程序获得的exe⽂件,其中的占⽐最⼤的是其中的第三⽅库。除了exe⽂件,还有⼀种可执⾏⽂件
是⽂件,现在已经很少见到,它是⽤汇编或者⽤机器码直接写的可执⾏程序,没有⽂件头和复杂的⽂件结构,从⽂件的第⼀个字节就开始执⾏,适⽤于并不复杂的、追求效率的底层操作。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论