
Python
文章平均质量分 70
BBJG_001
手与大脑的距离决定了理想与现实的相似度
展开
-
pytest数据驱动
python数据驱动,动态参数,断言封装原创 2022-08-28 22:29:18 · 629 阅读 · 0 评论 -
AttributeError: Can‘t pickle local object ‘Flask.__init__.<locals>.<lambda>‘
出现了标题所示报错,原因是Flask类的__init__.py函数中有lambda表达式,而其不能被pickle序列化。场景:多进程启动Flask(该方式并非Flask多进程的最佳实践,基于个人需求如此编码。转载 2023-05-04 15:04:42 · 824 阅读 · 1 评论 -
pytest封装requests
在pytest中对requests进行封装,维护同一个session,以便进行数据驱动,同时也可以统一实现日志处理原创 2022-08-19 20:52:26 · 848 阅读 · 0 评论 -
pytest维护cookie、公共变量
pytest不同测试用例之间维护公用变量,当然也包括cookie,提供了文件、环境变量,共用同一个session三种方式。原创 2022-08-13 23:35:36 · 631 阅读 · 0 评论 -
pytest-html中文乱码
pytest-html报告中文乱码,不推荐修改源码。原创 2022-08-01 00:26:07 · 4805 阅读 · 5 评论 -
jmeter接口测试
准备非必要环节,只需求jmeter可以跳过python写了一个http后台,使用sqlite数据库,数据库表student(id, name),实现了增删改查httper.py:进行数据库初始化httper.py:http后台,增删改查逻辑,启动方式# 基于python3python httper.py 8088readme.md:api文档jmeter安装(基于Mac,看起来mac、windows可以用同一个安装包兼容,下载包中也存在win下的启动方式(未验证))需要原创 2022-05-10 01:38:00 · 533 阅读 · 0 评论 -
miniconda envs目录为空
背景在pycharm为项目添加环境时,在miniconda的envs目录下找不到python解释器一个高命中答案在Pycharm下创建Anaconda虚拟环境,但envs目录下没有interpreter解释器问题的解决 中提到一个原因是没有指定具体环境,梗概如下# 没有指定具体环境conda create -n envxx0 # 创建了一个空环境,这就不会再 envs目录下生成内容# 不指定python版本conda create -n envxx1 python # 这样会公用基础的p原创 2022-01-09 17:19:12 · 5761 阅读 · 1 评论 -
Locust压力测试
目录准备数据库起个数据库造一些数据起个服务做个http服务,dbaserver.pylocust压力测试安装基于python测试脚本运行locust进一步(多进程)再进一步(配置文件)更进一步(跳过前端起任务)再完善下(脚本起多worker)一个完整demo官网文档配置参数本文的代码文件地址准备 一节系个人兴趣,可以直接看locust使用一节,测试可以找一个公共接口测试,如https://www.baidu.com准备数据库起个数据库# 起容器docker run -itd --name原创 2021-11-23 22:07:13 · 1424 阅读 · 0 评论 -
python 如何快速起一个http服务
想到http最直接想到的就是浏览器访问,其实它的原理也就是通过网络进行不同机器之间的数据交互。当然数据交互的方式很多,ftp,ssh,还有另外一些可视化的工具。这里就记录一下如何通过python快速的起一个http服务。base demo直接上代码,基于python3.8from http.server import BaseHTTPRequestHandler, HTTPServerimport numpy as npclass MyHandler(BaseHTTPRequestHandler原创 2021-10-24 23:29:27 · 1530 阅读 · 0 评论 -
并查集原理并Python实现、Java实现
原文地址分类目录——数据结构笔记喔哈哈,刷题刷到了并查集,我就把我一年级时候的课程设计拿了出来,就直接贴上了那回事儿是用Java写的,Python实现在文尾Python实现这里写了一份简单版的,通过字典实现父子关系relation = {son:father}# 构造{节点:祖先}关系,使每个节点的父亲都指向最顶层祖先def union_find(nodes, edges): father = {} # 字典记录父节点 {node: father_node} for n原创 2020-07-17 21:01:16 · 319 阅读 · 0 评论 -
mujoco环境变量报错:Missing path to your environment variable.
Missing path to your environment variable. Current values LD_LIBRARY_PATH= Please add following line to .bashrc: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/.mujoco/mujoco200/bin报错环境Ubunut18...原创 2020-04-28 11:49:55 · 6944 阅读 · 1 评论 -
Windows下操作文件报错:文件名或扩展名太长
原文地址注:我的解决环境时在win10(1089)下问题在用os模块操作某全路径文件时,报错文件名或扩展名太长原因Windows中限定了默认的256个字符路径长度限制(MAX_PATH)解决修改这个最大长度的限制从Windows 10(版本1607)开始,MAX_PATH限制已从Common Win32文件和目录功能中移除。若要使用新的扩展路径行为,必须通过更改注册表项...原创 2020-04-12 09:41:32 · 20867 阅读 · 5 评论 -
爬虫:Python下载html保存成pdf——以下载知乎下某个专栏下所有文章为例
原文地址分类目录——万能的Python系列分类目录——爬虫系列首先,需要下载安装支持工具 wkhtmltopdfwkhtmltopdf官网下载地址安装完成后将其下bin目录的绝对路径追加到环境变量中之前import requestsimport reimport osimport jsonimport pdfkitHEADERS={ # 设置requests要...原创 2020-04-05 10:38:02 · 2575 阅读 · 0 评论 -
Python调用Graphviz画流程图
原文地址分类目录——万能的Python系列近来发现了一个神奇的画流程图的工具——GraphvizGraphviz官网什么是Graphviz?Graphviz是开源的图形可视化软件。图形可视化是一种将结构信息表示为抽象图形和网络图的方式。它在网络,生物信息学,软件工程,数据库和网页设计,机器学习以及其他技术领域的可视界面中具有重要的应用。引自 Graphviz官网+谷歌翻译就是一...原创 2020-04-03 19:38:10 · 5106 阅读 · 3 评论 -
Pytorch可视化——tensorboardX
原文地址Pytorch系列目录tensorboardXtensorboardX GitHub安装支持包pip install tensorboardpip install tensorflowpip install tensorboardX程序中关键语法from tensorboardX import SummaryWriter'''model声明'''mo...原创 2020-04-01 10:46:46 · 1859 阅读 · 0 评论 -
Pytorch可视化——Netron
原文地址Pytorch系列目录NetronNetron官方/下载网址Netron GitHubWindows下安装Netron这个软件很简单,只需要进入上面的下载地址,点击“Download for Windows”即可下载安装包,双击安装包即可安装图片来源Netron的简单使用是通过打开保存好的模型文件,从上图可以看到,Netron目前可以支持的平台很多,在其中就有Pyt...原创 2020-04-01 10:41:59 · 2567 阅读 · 0 评论 -
Pytorch和Tensorflow中的交叉熵损失函数
原文地址Pytorch系列目录导入支持import tensorflow as tfimport torchimport numpy as np生成测试数据onehot_labels = [[0,0,1,0,0], [0,0,0,1,0], [0,1,0,0,0], ...原创 2020-03-30 15:32:44 · 3528 阅读 · 0 评论 -
Pytorch中的view()函数
原文地址Pytorch系列目录view()函数有些像numpy中的reshape函数,是用来的tensor(张量)形式的数据进行围堵重构的,直接用程序来说明用法生成测试数据import torchtorch.manual_seed(0) # 用来控制内部的随机机制使每次得到的随机数一样tt = torch.rand(3,4)# tensor([[0.4963, 0.7682,...原创 2020-03-27 09:52:42 · 6963 阅读 · 0 评论 -
调用浏览器的爬虫——selenium
原文地址分类目录——爬虫在进行网页爬取时,有些网页比较难分析,应用的很多动态特性;还有可能会在header中封装了很多奇奇怪怪的不知道怎么获取的数据;这时候可能会想如果能用程序吊起浏览器来,自动执行点击,拖动等动作就好了selenium就是这样一个工具包先看一个例子上面所有的操作都是selenium程序控制执行的,当然,执行遇到了问题,卡在了图片验证上,这个之后再说,先看一下上述操...原创 2020-03-26 09:49:13 · 2097 阅读 · 0 评论 -
Pytorch控制打印矩阵的格式
原文地址分类目录——Pytorch诸如长序列单行显示,全部显示(不缩略显示),精度(保留小数点后几位),是否科学计数法显示等等。直接用程序来说明生成测试数据import torchtorch.random.manual_seed(0) # 固定每次生成的数据相同tensor = torch.rand(100, 9)-0.5print(tensor) # 在默认的显示设置下进...原创 2020-03-25 09:37:48 · 5385 阅读 · 1 评论 -
Numpy控制多维矩阵的显示格式
原文地址分类目录——numpy诸如长序列单行显示,全部显示(不缩略显示),精度(保留小数点后几位),是否科学计数法显示等等。直接用程序来说明生成测试数据import numpy as npnp.random.seed(1) # 控制每次生成的随机数据相同data = np.random.random(700).reshape((100,7))print(data)效...原创 2020-03-25 09:32:55 · 3085 阅读 · 0 评论 -
爬虫:异步(并行)数据爬取
原文地址分类目录——爬虫在进行网页爬取时,网页的响应速度慢于计算机的处理速度,在串行模式下访问多个网页,在通过网络获取一个网页的过程中,在这个过程之前,计算机只能闲置等待。而异步的方式就是让计算机可以在这个闲置时间先去做后面的工作,等这个网页响应完成再对它进行处理。这里说的这种异步的方式是一种分时获得时间片的机制,有些像多线程,不同于多进程,私以为比较适合爬虫这种IO密集型操作。异步编...原创 2020-03-24 08:28:11 · 2681 阅读 · 0 评论 -
爬虫: 多进程分布式数据爬取
原文地址分类目录——爬虫多进程的使用可以参见 分类目录——多进程 ,这里就直接操作不在进行过多的说明这里以 把我的优快云上的20条博客 访问一遍为例,来比照单纯串行和多进程并行的执行效率首先,获取我所有博客的URL(当然只用20条做测试,我把这个功能封装了一个函数,方便我之后调用)def getAllUrls(url): # url传个人主页,我的是 'https://b...原创 2020-03-24 08:24:26 · 1871 阅读 · 0 评论 -
tkinter控件放置pack、grid、place
原文地址分类目录——tkinter先看效果.pack()方式放置.grid()方式放置.place()方式放置应用实例.pack# # .pack()方式放置tk.Label(window, text='1', bg='red').pack(side='top') #上# pack支持的属性after, anchor, before, ex...原创 2020-03-23 09:34:10 · 2166 阅读 · 0 评论 -
tkinter弹窗messagebox
原文地址分类目录——tkinter先看效果messagebox应用实例def hit_me(): # 提示信息弹窗 tk.messagebox.showinfo(title='Hi', message='info') # tk.messagebox.showinfo(title='', message='') # 提示信息对话窗 # tk.mess...原创 2020-03-23 09:31:24 · 2290 阅读 · 0 评论 -
tkinter窗口布局Frame
原文地址分类目录——tkinter先看效果emmm,看起来并不是想要的亚子,框架会保证各个frame的相对位置,大小时可变大小的,随着内容而增大Frame应用实例tk.Label(window, text='on the window').pack()# 在window上创建一个framefrm = tk.Frame(window, bg='purple')frm.pa...原创 2020-03-22 07:53:12 · 4977 阅读 · 1 评论 -
Python匿名函数(lambda表达式)
原文地址我的简单理解就是通过一行代码定义一个函数lambda表达式语法如下函数名 = lambda 参数 : 参数表达式在使用的时候函数名(变量)eg.通过常规方式定义函数 if x<y: res = x+y else: res = x-y return resprint(fun(1,3))# 4通过l...原创 2020-03-22 07:49:24 · 2059 阅读 · 1 评论 -
only size-1 arrays can be converted to Python scalars
原文地址在使用multiprocessing.Array()在多进程间共享多维数据时import multiprocessing as mpaa = mp.Array('i', np.array([[1,1], [2,2]]))# TypeError: only size-1 arrays can be converted to Python scalars我找到的解决方案:使用mu...原创 2020-03-21 15:05:23 · 2044 阅读 · 0 评论 -
tkinter制作菜单栏
原文地址分类目录——tkinter先看效果其中黄色部分是一个Label,菜单中的命令选项没点击一下,就能调用写好的函数在这个Label中输出,功能为统计命令被点击的次数应用实例Menu对象=tk.Menu()定义一个菜单条,或横条(顶部的菜单横条),或竖条(点击‘文件’弹出的竖条),或额外的子条(点击某个选项后展开的条),如下图中的三个红色方框框住的,都可以被认为是一个M...原创 2020-03-21 08:53:07 · 4531 阅读 · 0 评论 -
tkinter连续范围选择控件Scale应用实例
原文地址分类目录——tkinter先看效果其中黄色部分为一个Label,用来显示当前游标所在位置的值;下放为刻度尺(Scale),拖动游标可以选择不同的值Scale使用示例s = tk.Scale(window, label='try me', from_=5, to=11, orient=tk.HORIZONTAL, length=200, show...原创 2020-03-21 08:50:42 · 1852 阅读 · 0 评论 -
tkinter多选框Checkbutton应用实例
原文地址分类目录——tkinter先看效果其中上面是一个Label,用来根据选择情况作出相应的展示;下面是一组复选框(Checkbutton)Checkbutton使用实例var1 = tk.IntVar()var1.set(1) # 如果设置值是onvalue的值,就默认选中;如果设置值是offvalue或者非on非off的值,就默认不选中var2 = tk.In...原创 2020-03-20 08:21:26 · 2456 阅读 · 0 评论 -
tkinter中的单选框Radiobutton应用实例
原文地址分类目录——tkinter先看效果Radiobutton使用var1 = tk.StringVar()var1.set('B') # 设置哪一个被默认选中,如果设置值不在可选项中,则全不被选中r1 = tk.Radiobutton(window, text='Option A',variable=var1, value='A', ...原创 2020-03-20 08:18:19 · 3363 阅读 · 1 评论 -
tkinter中的ListBox应用实例
原文地址分类目录——tkinter先观察效果其中最下面的框是ListBox框,将数据列在一列输出,中间为一个Button,该Button链接的功能为获得在ListBox中选中的内容,然最在最上面黄色的Label中显示ListBox使用var2 = tk.StringVar()var2.set((11, 22, 33, 44)) # 内容设置为元组、list都可以lb = ...原创 2020-03-19 21:06:11 · 2135 阅读 · 0 评论 -
tkinter中的Entry和Text应用实例
原文地址分类目录——tkinter先看一下Entry和Text的效果其中上面为输入框,下面为Text展示框tk.Entry()e = tk.Entry(window, show='*' , bg='#aaaaaa') # 声明输入框# 输入框,可供传入的变量有: background, bd, bg, borderwidth, cursor,# exportselect...原创 2020-03-19 21:03:06 · 2429 阅读 · 0 评论 -
tkinter制作强化学习可视化环境
原文地址分类目录——强化学习分类目录——tkinter全部代码先看一下环境效果强化学习用到的环境通常需要以下几个功能函数_init_() def __init__(self): super(Maze, self).__init__() self.observatin_space = [(x, y) for x in range(1...原创 2020-03-18 20:00:58 · 2578 阅读 · 0 评论 -
tkinter画图Canvas应用实例
原文地址分类目录——tkinter先看效果其中蓝色区域为一块画布(Canvas)区域,在画布上放置了图片,画了圆形、方形、扇形;下方的按钮可以调用方法移动左边的矩形Canvas应用实例canvas = tk.Canvas(window, bg='blue', height=100, width=200)# 注意:tkinter中的坐标系左上角为原点,向右为x轴正向,向下为y轴...原创 2020-03-18 19:55:33 · 2517 阅读 · 0 评论 -
强化学习:Pytorch实现DQN
原文地址分类目录——强化学习分类目录——Pytorch全部代码DQN的理论理解可以参见我写的 强化学习:DQN的理解,这里就直接上代码了,需要处通过注释进行说明导入支持包import torchimport torch.nn as nnimport numpy as npfrom gymTest.mazeEnv import Maze # 这是一个我自己写的环境...原创 2020-03-17 10:14:43 · 4573 阅读 · 4 评论 -
数据结构笔记:二分查找
原文地址分类目录——数据结构笔记只能作用于有序的顺序表上又折半查找对比序列的中间值,小于该值从左序列中二分查找,大于该值从右序列中二分查找,直到查找到目标值或子序列只有一个元素截止实现递归实现def binarysearch(alist, item): '''二分查找_递归实现''' n = len(alist) if n > 0:...原创 2020-03-17 09:51:45 · 1863 阅读 · 0 评论 -
强化学习:DQN的理解
原文地址分类目录——强化学习还是根据Q(s, a)值来进行动作判断的一种机制传统的Q-Learning强化学习会生成一个状态动作的组合表,通过一轮轮的迭代使这个表格收敛。**问题:**现实中的活动往往状态空间很大,比如下围棋,理论上Q表的矩阵要达到(19**2)*(19**2)的规模,存储这么一个表格是一个问题,学习并让这个表格收敛更是一个大问题。——如果能有一个公式能通过输入当前的状...原创 2020-03-16 11:03:07 · 2866 阅读 · 0 评论 -
数据结构笔记:归并排序
原文地址分类目录——数据结构笔记先把整个序列对半拆分,然后对子序列在进行对半拆分,直直拆成每个子序列只有一个元素,然后再按拆分顺序一层一层反向合并,在拆分过程中原来在一个子序列的,合并后还在子序列,合并时需要保证按序合并最底层的合并好说,两个值,比较大小,小值在前再往上,需要为合并的两个子序列配置两个指针(姑且称之为left和right),初始分别指向序列的起始位置,较两个指针指向值,取...原创 2020-03-16 10:55:59 · 1726 阅读 · 0 评论