自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三头六臂的小白

高级python攻城狮,安卓自动化小能手,AI工程师

  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 生产环境、测试环境、开发环境的快速切换与配置

经常听同事抱怨,从开发环境切换到到测试环境,从测试环境切换到生产环境经常出现配置需要更改,或者特异性的BUG。其实就是不同环境下还是有轻微的差别,比如数据库,MQ的地址,密码配置等,这些在使用或者配置时候没有注意或者遗漏造成的。正好新的项目需要两个环境下来回切换,这里仅仅给个思路:在统一的配置/setting文件中,加入某个文件的判断,当有这个文件时候判定是环境A,没有的时候判断为B...后面所有的配置都可以根据这个文件判断来推断目前的环境import osLOCAL_DEBUG

2021-01-05 08:52:23 1917

原创 TAO toolkit 训练UNET 踩坑记录 解决mask与image无法对齐问题

2. 配置 config.txt时候(教程里放到specs那个)的data_clase_config时候 label_id 要跟mask文件中的你要的部分的对应像素值对应 例如我的标注 黑色是背景,白色是要提取的东西 则需要这样写 data_class_config {先说结论,如果在使用TAO 训练Unet时候发生image与mask没有对齐(配对混乱),要自己写train_image.txt 那几个txt文件,注意文件内图片的顺序务必 train 的image 和mask 保持一致。

2023-11-07 16:38:07 296

原创 code-server 扩展无法启动,报错‘crypto.subtle‘ is not available so webviews will not work的解决方法

解决 code-server 扩展无法启动,报'crypto.subtle' is not available so webviews will not work. This is likely because the editor is not running in a secure context 问题解决

2023-02-13 17:14:32 1922 1

原创 错误 No module named ‘_bz2’ 的解决方案

错误场景: 在python 安装 pandas 和 sqlalchemy 以后,运行脚本时候,提示“No module named ‘_bz2’” 的相关解决方案

2023-01-12 10:33:09 12573 2

原创 使用docker版paddle镜像 提示 You are using GPU version Paddle, but your CUDA device is not set properly

1. 上网搜 对应 错误的代码,发现多是说对应的paddle版本 和系统中的 cuda 和 cudnn ,但是要注意,这里我们用的是官方的docker 镜像,其实并不存在 paddle 和 cuda 和 cudnn 版本差异的问题,这三个的版本兼容是官方测试过的。6. 查证发现,使用yum 默认安装的docker 版本非常低,上网找对应的安装新版docker 的方法就解决了。你的 docker 是默认用 apt 或者 yum 安装的,不是最新的docker 版本,安装最新版本的docker就可以了。...

2022-08-29 14:34:57 1750 1

原创 开启Hyper-v,使用蓝叠模拟器进行抓包的曲折经历

本文适用于使用hyper-v的windows机器利用蓝叠模拟器进行root 和 抓包的工作的参考,相应资源和链接都有

2022-08-02 11:44:50 5127 2

原创 Pandas 中df.loc[ ] 与 df.iloc[ ] 的用法与异同详解

让你了解 df.loc[ ] 与df.iloc[ ] 的用法,理清方括号里到底是选择的index 还是 列名,还是序号,用例子对比iloc 与loc的方法,养成相对良好的pandas选取习惯

2022-01-04 16:14:17 5022 1

原创 Docker 内部服务外部无法访问的解决方法(容器内部能访问,外部不能访问)

先说结论: 监听端口时候 不要用 localhost 而是用 0.0.0.0 (至少适用于socket 和 flask)在Docker 容器内的localhost/127.0.0.1指的是容器内部任意主机访问容器,或者主机内其他容器访问这个容器 都是外部访问。因此在容器内的容器监听端口时候 如果监听的是 localhost/127.0.0.1:xxx 的话,即使是将这个xxx端口映射到host主机了,对容器内来说,也不是localhost访问,也是外部访问,这点要注意。...

2021-09-17 18:02:13 4287

原创 Docker 运行rabbimq报“clock_gettime(CLOCK_MONOTONIC, _) failed: Operation not permitted (1)” 错误解决方法

结论: arm架构下的linux (本人树莓派)libseccomp 库有问题,更新这个库就可以了。1. 先检查你用的是不是 amd64架构的服务器/电脑,如果是请另寻他法,本法不适用2. 我用的树莓派架构是 arm32v7版本的 正确的镜像在https://hub.docker.com/r/arm32v7/rabbitmq/3. 重新下载镜像启动容器如果还报这个错误 应该是 libseccomp 的版本问题参考:https://hrushi-deshmukh.mediu...

2021-09-03 15:34:39 969

原创 flask-apscheduler 使用sqlite3进行持久化存储的配置(非纯apscheduler)解决flask-apscheduler无法持久化存储job的问题

先说结论: 在flask 中配置 "SCHEDULER_JOBSTORES" 变量 例子如下:SCHEDULER_JOBSTORES = { 'default': SQLAlchemyJobStore(url='sqlite:///jobstores.db') }在apscheduler 创建之前 flask 的app 实例载入配置即可DEBUG 过程简述~1. 纯apscheduler 在使用持久化时候可以使用多种方法 举一个例子:jobstores..

2021-08-17 16:52:39 1513

原创 flask 处理 multipart/mixed 类型数据 (案例为处理java okhttp包post上传图片)

先说结论:1. 通过 request.stream 配合 readline 来读取 混合在头部的相关数据,2. 最后 再使用 request.data 或者 request.stream来读取剩下的数据/流:这里假设你已经了解如何通过flask处理通过file形式上传的图片的相关知识:request 模块上传图片代码块def sendImg(img_path, img_name, img_type='image/jpeg'): url = 'http://127.0.0.

2021-08-10 15:27:37 1172

原创 Accessibility 无法获得控件的几种解决方法 (android)

时隔一年多又开始开发Accessibility相关软件,这里把几种常见的accessibility 控件无法获得的解决方式都列举出来:1. accessibility 实例在调用.getWindows()方法时候堆栈溢出:解决方法: 给自己开发的app(不是目标app)添加一个权限:"后台弹出界面" 用自己的app启动目标app原因分析,调用acc的实例的.getRootInActiveWindow() 放法会调用.getWindows() 方法,这里面要传入一个ID,这个id默认是Acces.

2021-07-27 12:18:26 4692

原创 Flask-apscheduler 无法启动工作,报错Run time of job was missed by... 解决方法

1. 环境与背景,使用Flask 还有flask-apscheduler flask-sqlalchemy 这几个东西重构了一个自己版本的https://github.com/guomaoqiu/JobCenter工具,用来管理自己的工作,因为应用使用了flask-sqlalchemy 所以很多操作要在 flask的app_context中运行,就使用了flask-apscheduler,遇到了Run time of job xxx was missed by xxx...bug先说结论: fl...

2021-07-20 09:36:12 1896

原创 迁移部署gitlab 遇到权限问题,部署成功后无法登录的问题解决方法,pid文件无法读写问题等解决方案

公司gitlab是部署在docker里面的,但是其数据持久化这块做的有点问题,跟宿主机的共享目录明显偏小,数据不全(怀疑是迁移后才共享的,迁移之前可能是原生部署或者没有共享目录)从容器中导出了gitlab需要用的文件,这里注意 官方文档规定了gitlab有固定的升级路线,不能跳(不然当场挂给你看),我用了官方的路径,一开始启动容器时候就遇到了文件权限问题docker 下gitlab 迁移的文档我是参照这位仁兄的博客 浩如yan海搞的,其中环境变量的这块我没有按照他写的做。运行容器后,查看容器l.

2021-04-26 11:11:53 1308

原创 Nexus3迁移后无法下载,解决Failure servicing: GET InvalidStateException: Invalid state: FAILED; allowed: [START

昨天迁移安装的nexus3 迁移说明请看官方迁移指南今天早上发现无法下载,提示 500 服务器内部错误进到容器里查看log 提示: Failure servicing: GET InvalidStateException: Invalid state: FAILED; allowed: [STARTED]搜了一下也没有什么有意义的东西,思路如下:1 .查看是否是空间不够用了(已经查不是)2. 查看是否因为.bak文件和数据库时间戳有差异导致问题(解决方法是 在nexus的..

2021-04-26 10:48:23 1310

原创 linux(ubuntu)下实现鼠标侧键映射双击、鼠标中键 快捷键的方法—— 使用xbindkeys

1. 安装两个软件sudo apt install xbindkeyssudo apt install xautomation2. 创建xbindkeys 的默认配置文件:xbindkeys --defaults > $HOME/.xbindkeysrc3. 查看鼠标侧键的编号:使用命令行xev | grep button 呼出一个窗口 把想要识别按键按下,控制台就会有对应的数字出来 一般鼠标左键是1 中键是 2 右键是3等等键盘映射在刚刚的.xbin...

2021-04-07 10:23:00 4087 1

原创 解决 linux(ubuntu 20.04)下 启动mysql 错误,无法启动服务 报错 Error: 2 (没有那个文件或目录)

出现状况:使用命令 servcie mysql start 提示失败用命令 service mysql status 提示错误 :“Error: 2 (没有那个文件或目录)”出错背景说明:64位 ubuntu 20.04系统,之前可以正常运行,后来节省系统资源 用命令:sudo systemctl disable mysql 关闭了mysql服务的自动启动后来正好遇到ubuntu 更新了mysql的部分库 二次启动mysql时候出现了这个问题解决方案:1. ...

2021-04-06 16:59:59 6394

原创 python编写的SFTP文件夹上传工具,文件夹清理工具,简单易用,配置方便

之前写的很多爬虫因为有针对性,不适合分享,最近写了一个上传文件夹的小工具,东西不大,功能尚可,配置还比较方便,打包也很方便分享一下# --coding:utf-8--from paramiko import Transport,SFTPClient,SSHExceptionfrom os import path,listdir,rmdir,removefrom sys import argvfrom time import sleepfrom json import loads# S.

2021-03-26 09:45:19 326 4

原创 使用SFTP时候报错 no acceptable compression (已解决)

这两天用python开发一个用sftp协议上传文件夹的工具,使用 paramiko库。测试都好好的,但是交付以后,使用端反馈报错:Incompatible ssh server ( no acceptable compression )并反馈 远端服务器要求传输时候使用zlib压缩。查了一下paramiko库,并没有使用压缩的相关设置。后来上StackOverflow上有人恰好有同样的问题,大佬回复:改源码:Transport 下的 _preferred_compression=.

2021-03-26 09:22:26 246

原创 解决SFTP 连接错误 :Connection to xxx closed by remote host.方案记录,SFTP debug问题记录

最近在调试一个自己做的工具,向SFTP上传整个文件夹内的内容,上传完成后要删除本地文件夹内所有的内容。打算自己搭建一个docker测试平台,就用了公司服务器的版本的centos6.6搭建了一个运行平台搭建教程请看:https://blog.csdn.net/weixin_41295682/article/details/80480422这里我用的是本机的 4022端口映射容器内的22端口,安装完成后发现使用sftp账号登录不上去,但是sshsftp root账号却可以登录...在...

2021-03-25 15:14:33 7790

原创 开发者把Ubuntu当主力机的半年后的优缺点总结,优势与坑并存的linux

笔者从事Python开发工作,日常是写写爬虫,搞点内部用的小工具,偶尔负责下运维工作。用linux机器当主力开发机的契机是目前的公司要求我们自己带机器工作,而不巧的是工作之前恰好买了一个配置一般的红米锐龙版,从不分心和系统响应速度两个角度选择了给机器加装ubuntu系统做主力系统。用了这么久总的来说还是很满意的:1. 开发者适不适合用linux机:必须适合,非常适合,炒鸡适合。因为贴近生产环境,需要额外的成本就低。本人做python的,不同的程序一般使用不同的开发环境(包冲突或者版本问.

2021-03-17 13:58:18 10695

原创 Docker 部署redis cluster集群、哨兵模式心得

Docker 部署redis集群心得最近工作是撰写部署redis的相关文档,为了验证文档有效性,使用了docker来进行安装验证具体安装步骤与linux环境下安装差异不大,请看他的博文 最爱喝酸奶这里只介绍docker下的一些心得:1. 公用文件夹 化繁为简在linux上安装redis 需要编译和安装,这些步骤与普通linux没有差异,但是docker可以在主机和container里共享文件夹,当多个container共享一个文件夹时候这个文件夹就可以将编译完成的文件共享给其他机器,大大减少安

2021-03-12 14:02:28 368

原创 PyDispatcher 介绍(官网翻译版本)

PyDispatcher简介PyDispatcher为Python程序员提供:" 多个生产者-多个消费者的" 的信号注册和路由服务的多用途基础架构。 这种机制在Python Cookbook 里被高度评价。本项是在多个项目的开发经验基础上总结并加强它(信号机制)。项目主要贡献者是Mike Fletcher ,该项目的一个衍生版被用于django web项目中。PyDispatcher 能做什么:1. 提供中央式的信息传递传递服务(在本程序内将信息传递到目标对象),使你可以注册无限多的从...

2021-03-01 17:06:17 1265

原创 Scrapy中engine._download方法调用downloader.fetch时候都发生了什么?scrapy启动流程图(5)

这里就简单说明一点,middleware如果直接返回scrapy的response对象时候,这里downloader大部分下载活动将不会被激活,这里讲的是大部分middle没有返回response对象时候,系统是如何调用downloader的方法进行下载的。...

2021-02-07 09:59:13 110

原创 scrapy启动流程图(4)——engine.py的内部运作图(2)

这里订正下上一篇的错误,由于本人疏忽,将request的 弹出处理部分代码遗漏的,下面的流程图中补充了这里真心不建议大家用这个模式去写代码,重复的部分很多,他这里这样写是因为reactor在处理错误时候没法很好的被上一层级别捕获,建议在自己的代码里避免这种写法到这里 engine的全部代码就解析完毕了 下一篇文章事scraper的解析 也不是很麻烦 后面还有downloader,scheduler比较简单建议大家自己看代码...

2021-02-04 11:23:20 140

原创 scrapy启动流程图(3)——engine.py的内部运作图(1)

这就是回调地狱!!! 同志们不要学!!!所有的异常和数据处理下载等都被绑在request相关的deferred对象里了本文解释了运行scrapy crawl xxspider命令后,scrapy内部是如何跑的,一步步拆解看从命令行解析到具体调用命令请看:第一篇 《scrapy启动流程图(超详细)——cmdline.py解析》从具体命令到创建crawlerprocess和实例化crawler 请看:第二篇《scrapy启动流程图(2)——crawler的启动流程图》下面的流程图详细.

2021-02-03 15:42:53 577 1

原创 scrapy启动流程图(2)——crawler的启动流程图

这里简单说说明下,当我们使用 scrapy crawl xxspider 时候 发生了如下事情:1. 由setup.py 定义的程序入口 cmdline.py 的 execute() 函数被系统 terminal调用 os.argv里面是这样的数据["cmdline.py","crawl","xxspider"]2.由cmdline.execute 通过一系列解析动作 调用到 Command/crawl.py 并执行run命令 (请看我上一篇 scrapy启动流程图 的文章)3. 有cr...

2021-02-02 16:26:23 574

原创 Scrapy Spider源码解读 及继承关系图 方便记忆检索

目前已经将很多 scrapy翻译和解释写到了scrapy的代码里,有兴趣的同学可以去github里看具体的解释scrapy翻译github希望有兴趣的小伙伴也可以一起解释scrapy的代码学了会用100个库不如彻底弄明白一个库你说呢?...

2021-01-28 15:52:52 161

原创 MIUI 12 安装谷歌套件 解决升级miui后无法使用谷歌套件的问题 适用于升级到android11后无法使用三件套 点击登录没反应的情况

适用情况:点击playstore后 有登录按钮,但点击无反应。硬件环境说明:本人手机 k30 5g 不在小米的亲儿子列表里,升级MIUI12后无法通过设置的方式获得谷歌套件,但套件在miui11 可以使用。症状:使用各种方法安装谷歌三件套(谷歌服务框架、playservice playstore)最新版后,点开playstore 后只有登录按钮,点击后无反应。分析结论:因andorid11后 所有使用谷歌gms服务的应用需要在特定XML声明对应gms的权限,而老版本的plays.

2021-01-27 10:49:29 50813 34

原创 scrapy启动流程图(超详细)——cmdline.py解析

图片非常大,请耐心等一下。图片详细介绍了 在使用 "scrapy crawl xxx" 启动命令背后的工作。cmdline.py excute的这里可以看做整个scrapy项目的起点,整体操作围绕着两个部分,一个是setting的配置一个是crawler/crawprocess大部分的需要配置的东西都在setting中传递。带注释的代码:import sysimport osimport optparseimport cProfileimport inspecti..

2021-01-19 15:08:14 1459 1

原创 99%的Python程序员不理解的——Metaclass元编程

Python Metaclasses 元类全文翻译自realpython-mataclass介绍metaprogramming元编程 指的是潜在的对程序行为(指编程语言或者默认解析器的行为)本身进行更改的编程行为,Python支持通过metaclasses元类进行元编程。metaclass元类是在所有python代码运行逻辑背后的比较精深的OOP(面向对象)概念。虽然不论你是否注意到你都在无时无刻使用着metaclass,但绝大多数情况你不用在意metaclass。大多数Python编程者很少或者

2021-01-15 09:18:26 198

原创 Scrapy crawler.py 代码详细解析

这里先简单讲一下 scrapy 底层 twisted中的reactor ,他相当于asyncio中loop,deferred相当于 future,crawler 相当于实际执行爬取的类,并管理了自身的启停,接受控制信号和setting配置等。其中Crawler实例 相当于一个实例化的spiderCrawlerRunner 是对crawler的调度,其需要你自己的项目中使用twised框架才有必要了解操作这个类CrawlerProcess 相当于封装了twisted需要的reactor以后的.

2021-01-12 17:00:56 1466 3

原创 配置有密码保护的scrapyd服务端及客户端——爬虫的生产环境部署

本文针对scrapy爬虫在调试完成后,怎样部署到linux服务器,以及使用scrapyd-client上传的相关配置做简单总结1.概括:服务端 : nginx+htpasswd(配置访问端口及密码)>>> screen(窗口切换工具,用于将前台守护进程类软件变成后台守护型)+scrapyd(服务端执行scrapy爬虫的相关进程)客户端:安装scrapyd-client 配置 爬虫目录下的scrapy.cfg 文件,使用crontable 和curl 两个工具进行定时访问指定..

2020-12-29 15:15:43 787

原创 Scrapy 使用代理隧道爬取HTTPS的BUG

一两年前的代理都是代理池模式的,每次链接时代理IP是自己控制的,没发现问题现在用隧道代理,每个TCP在远端分别用不同的IP代理并返回,自己可以通过设置header的部分字段来通知远端隧道更换IP遇到一个问题,就是我的处理逻辑是爬一段时间,当这个IP被ban掉后换新的IP,但是死活换不了经过debug和查找代理的相关资料发现 要在headers里request.headers['Proxy-Connection'] = "close"request.headers["Connection.

2020-12-23 09:15:16 3438

原创 scrapy Use xx[‘xx‘]=xx to set field value BUG记录

在使用Scrapy爬东西时候,给 自己定义的item赋值时候 写成了temp.name = "demoname"这里可以直接理解为item就是dict对象而dict对象应该这样赋值:temp['name']= "demoname"简单的总结 : 把ITEM赋值 从temp.name = "demoname" 改为temp['name']= "demoname" 就可以解决了。...

2020-12-22 10:34:54 350

原创 <异步令牌桶> 解决爬虫访问限制,解决aiomysql异步访问时多个task抢占句柄bug

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录什么是令牌桶?一、最简单的:单令牌二、总量限制桶三、水流桶(完整桶)总结什么是令牌桶?用来限制访问频率以及多线程情况下对某一资源访问资格的问题的解决方案:想象一个桶,每次你访问网络时候都要看下桶内是否有剩余的令牌,如果有你可以拿走令牌去访问,没有你就等着令牌投进来再访问。一、最简单的:单令牌class OneToken(): def __init__(self): self.current_toke

2020-12-15 16:04:18 259

原创 《Python高级编程》(第二版) ——速查笔记 第10~14章 完结

《Python高级编程》(第二版) ——速查笔记 第10~14章 完结第十章 测试驱动开发 TDD test-driven Development1. 简单的测试介绍2.测试的提高部分3.小结第十一章 优化 一般分析原则与分析技术1. 3个优化原则2. 优化策略3. 查找瓶颈第十二章 优化 一些强大的技术1. 降低复杂度2. 简化3. 使用集合模块4. 架构体系的权衡5. 缓存6. 小结第十三章 并发1. 为何需要并发2. 多线程3. 多进程4. 异步编程5.小结第十四章 有用的设计模式1. 创建型模式 (

2020-12-11 11:18:55 156

原创 《Python高级编程》(第二版) ——速查笔记 第7、8、9章

《Python高级编程》(第二版) ——速查笔记 第7、8、9章第七章 使用其他语言开发python扩展1. 使用c/c++ 编写扩展2. 为何使用扩展3. 编写扩展三种方法:1.纯C扩展2. Cython4. 挑战5. 无扩展的动态库接口6.小结第八章 管理代码1. 版本管理2.持续的开发过程1. CI 持续集成2. 持续交付3. 持续部署4. 常用工具5. 常见陷阱3.小结第九章 文档化你的项目1. 7项技术写作规则2. reStructuredText 入门3. 构建文档4. 构建自己的文档集5. 小

2020-12-11 11:16:20 194

原创 Httpx(异步的Requests库)实际使用中的一些技巧和心得

简单的说,同步库下的Httpx的用法基本完全等价于Requests库的用法,其中requests的session和Httpx中的client基本都是一个东西。1. 简单的例子:self.client = httpx.AsyncClient(proxies=self.proxylist[0])respond = await self.client.post(url, data=inputdata,headers = headers)在实例化时期先将AsyncClient 建立好,在需要.

2020-12-11 10:56:54 4955 11

原创 python 如何将同步代码改造成异步的

假设 原来的方式是def myfun(): A = fun1() b = fun2(A) return b改造后的异步方法样子是:async def myfun_async(): loop =asyncio.get_event_loop() A = awaitloop.run_in_executor(None,fun1) b =awaitloop.run_in_executor(None,fun2,A) return b...

2020-12-07 14:22:06 2622

适用于bstweaker修改过的的 5.9.0.1062版本的HD-Player.exe

适用于bstweaker修改过的的 5.9.0.1062版本的HD-Player.exe,用于bstweaker来root 蓝叠

2022-08-02

Google Play services_v20.50.16 (080406-351607135).apk

Google Play services_v20.50.16 (080406-351607135).apk

2021-02-04

优达学城安卓开发(初级 项目:sunshine) 分课时树状图第三课 activity与intent

优达学城的相关总结 有不理解或者有疑惑的同学可以给我留言 人多的话我会留易信资料 自己总结 有错误希望能帮助总结 拼写错误不用指出了

2017-01-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除