自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 资源 (1)
  • 收藏
  • 关注

原创 新装Ubuntu系统的一些配置

背景:最近办公要在Ubuntu系统上进行,于是自己安装了一个Ubuntu22.04系统,记录下新系统做的一些基本配置。

2023-09-10 17:40:51 854

原创 Java 实现单例模式的七种写法

单例模式(Singleton Pattern) 是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

2022-09-10 21:20:21 6521 1

原创 Python 实现单例模式的五种写法

单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。

2022-09-10 20:49:20 371

原创 主机ping能通虚拟机,虚拟机ping不通主机的解决方案

第一点,先确定本机的防火墙是不是关。第二点,查看你的虚拟机的网络配置,如下图 如果你的虚拟机是桥接模式则你的虚拟机ip需要和主机的ip设置成同一个网段 如果你的虚拟机是NAT模式则你的虚拟机ip需要和VMware的适配器设置成同一个网段看下图就理解了 最后,快去修改虚拟机的ip吧。...

2022-07-02 21:23:10 14221 1

原创 python的并发、异步编程总结

使用python并发执行任务首先想到的是使用多线程和多进程,或者是协程asyncio,本篇文章做一下使用的总结。使用场景说明一下:多进程:适用于计算密集型的任务,比如要进行大量的运算,或者多cpu计算依赖较多的任务 多线程:适用于IO密集型的任务,比如说网络请求、文件读写这些比较耗时的任务。 asyncio:同多线程,因为asycnio本质上是在单线程中执行的。 在使用线程池/进程池的时候,往往需要设置池的数量,一般默认情况是cpu的核数,可以使用os.cpu_count()获取1. 多进程

2022-05-01 17:11:01 2545

原创 openEuler 嵌入式构建

openEuler Embedded容器构建指导1. 安装docker需要安装docker,没安装的参考:安装docker2.拉取容器镜像从华为云pull镜像到宿主机docker pull swr.cn-north-4.myhuaweicloud.com/openeuler-embedded/rtos-openeuler-21.03:v001执行完,查看拉取下来的镜像id:docker images -a3. 启动容器 docker run -idt --net

2022-03-20 00:29:00 3003 5

原创 把一个目录打包成rpm包

最近做一个需求:把某个目录打包成rpm。就像tar包打包一样,不过要求是rpm包。环境openEuler-21.09 rpmbuild安装软件yum install rpm-build rpmdevtools -y执行以下命令,生成rpm构建目录rpmdev-setuptree生成的目录结构如下目录说明:BUILD:源代码解压以后放的位置,只需提供BUILD目录,具体里面放什么,不用我们管,所以真正的制作车间是BUILD目录。 BUILDROOT:假根,使用in

2022-03-06 23:19:32 1515

原创 python使用selenium实现页面自动化

简介Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,可以模仿用户的一些正常操作,还可以获取到网页的数据。安装pip3 install selenium安装谷歌浏览器驱动在谷歌的浏览器中输入chrome://version/可以查看自己当前使用的浏览器版本号:打开地址,找到跟自己浏览器同一版本的驱动进行下载:浏览器驱动地址我这里没找到完全匹配的版本号,就取96.0.4664.45也行的下载解压后,放在自己...

2022-03-06 22:57:02 1831

原创 QEMU 模拟启动 openEuler 的树莓派镜像

目录介绍1. 实验环境2. 安装 QEMU3. 准备 openEuler 镜像等文件4. QEMU 模拟启动树莓派介绍本文档主要介绍如何使用QEMU模拟启动 openEuler 的树莓派镜像。1. 实验环境操作系统:openEuler 21.09 架构:x86_64 qemu:6.20版本实验环境相关信息见下图:2. 安装 QEMU参考文章:openEuler系统编译安装qemu6.20这里说明一点,官方安装的是qemu6.0版本,而且编译的时候..

2022-02-26 21:32:18 2831 2

原创 failed to find romfile “efi-virtio.rom“

百分百解决此问题:failed to find romfile "efi-virtio.rom"网上大多数教程都是安装ipxe-qemu,不管用,最后添加-L参数成功解决!添加参数-L pc-bios/pc-bios是qemu源码包解压后的目录

2022-02-25 23:49:17 2785

原创 qemu启动openEuler Embedded镜像

目录1. 获取镜像2. 镜像内容3. 运行镜像3.1 极简运行场景3.2 使能网络场景(常用)4. 基于openEuler embedded的用户态应用开发本文档主要用于介绍如何获取openEuler社区预先构建好的镜像,如何使用qemu运行镜像,以及如何基于镜像完成基本的嵌入式Linux应用开发。1. 获取镜像当前发布的已构建好的镜像,只支持arm和aarch64两种架构,且只支持qemu中ARM virt-4.0平台,您可以通过如下链接获得相应的镜像:qemu_a

2022-02-25 23:45:16 2718 3

原创 openEuler系统编译安装qemu6.20

1. 下载软件并解压wget https://download.qemu.org/qemu-6.2.0.tar.xztar -xf qemu-6.2.0.tar.xz2. 进入解压后的目录,查看--target-listcd qemu-6.2.0./configure --help我这里只编译aarch64-softmmu 和arm-softmmu ,如果不指定,默认编译全部,这样比较耗时执行生成配置文件./configure --target-list=aar..

2022-02-22 23:11:48 1955

原创 新装的openEuler虚拟机需要做的简单配置

继上一篇文章:超详细的VMware安装openEuler21.09系统1. 修改网卡名称和静态ip原来的网络如下,我们对网卡ens33修改成eth0,ip修改192.168.1.2,,并且是静态的。编辑 网络配置文件vi /etc/sysconfig/network-scripts/ifcfg-ens33修改如下,BOOTPROTO修改为static静态,这样每次重启ip都会固定。重命名网卡文件mv /etc/sysconfig/network-scripts/i..

2022-02-20 22:26:09 4959 2

原创 超详细的VMware安装openEuler21.09系统

目录1. 环境准备2. 开始安装3. 安装openEuler 21.09操作系统新系统需要做的一些配置:配置静态ip,安装源,防火墙配置等等1. 环境准备VMware15pro 要安装的操作系统:openEuler-21.09-x86openEuler镜像下载地址:https://repo.openeuler.org/openEuler-21.09/ISO/x86_64/openEuler-21.09-everything-x86_64-dvd.iso2. 开始安装

2022-02-20 16:05:49 7758 4

原创 linux 安装apache2服务,从浏览器访问日志文件

apache2、httpd、linux

2022-01-28 20:40:02 650

原创 Python处理僵尸进程

os.waitpid、僵尸进程、python、signal

2022-01-28 00:02:47 5284

原创 python读取txt文件内容写入到excel表格中

import xlwtimport osclass TxtToExcel(object): def __init__(self, path): self.path = path self.workbook = xlwt.Workbook() self.worksheet = self.workbook.add_sheet('mybook', cell_overwrite_ok=True) def read_content(self,.

2021-12-25 20:48:59 5624

原创 linux 安装Jenkins和配置

简要介绍Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。语言:Java一句话描述:持续集成工具建议的版本建议使用版本为“jenkins-2.164.x”。环境清单:CentOS7.6配置安装环境安装OpenJDK。 要求Java的OpenJDK为“1.8.0”以上,可以通过以下命令安装...

2021-12-04 13:53:25 6057 2

原创 构建YOCTO项目详细教程

系统要求最少 4-8 GB 内存 磁盘剩余空间至少 60-80 GB CentOS 7.6 或者其他支持Linux发行版 安装软件依赖(CentOS-7):sudo yum install -y epel-releasesudo yum makecachesudo yum install gawk make wget tar bzip2 gzip python3 unzip perl patch diffutils diffstat git cpp gcc gcc-c++ gl..

2021-11-14 14:12:36 5305

原创 FATAL: The knotty ui could not load the required curses python module.

使用yocto工程执行命令:bitbake core-image-minimal遇到如下错误:FATAL: The knotty ui could not load the required curses python module.解决方案:安装bpython,会自动安装curses这个库,如果直接pip3 install curses是安装不了的pip3 install bpython...

2021-11-14 11:20:25 1995

原创 Python 内置函数详解,进阶必备

python版本3.6.2 ,python一共提供了68个内置函数,具体如下abs() dict() help() min() setattr()all() dir() hex() next() slice() any() divmod() id() object() sorted() ascii()

2021-10-13 15:44:57 199

原创 Linux安装MongoDB数据库

环境:CentOS-7.6 x86操作系统本文配置yum源安装,简单方便快捷。前期工作:关闭防火墙和SElinux停止和关闭防火墙# 停止防火墙systemctl stop firewalld.service# 关闭防火墙systemctl disable firewalld.service# 查看防火墙是否关闭systemctl status firewalld.service关闭SELinux执行vim /etc/sysconfig/selinu...

2021-09-16 11:22:24 337

原创 Django项目中使用Celery

本篇文章是celery分布式任务队列从入门到精通_大帅的博客-CSDN博客中的一个章节,其中celery的安装部署不再阐述,默认读者有django和celery的基础。1. 简单的django项结构如下:其中只定义了两个路由,taskA和taskB,在 view中实现了两个简单的方法url.py路由部分如下:urlpatterns = [ path('admin/', admin.site.urls), path('taskA'...

2021-09-12 15:36:59 889 1

原创 celery分布式任务队列从入门到精通

1. Celery简介 Celery是由纯python编写的,但是协议可以用任何语言实现。目前,已有Ruby实现的RCelery、Node.js实现的node-celery及一个PHP客户端,语言互通也可以通过using webhooks实现。在使用Celery之前,我们先来了解以下几个概念: 任务队列:简单来说,任务队列就是存放着任务的队列,客户端将要执行的任务的消息放入任务队列中,执行节点worker进行持续监视队列,如果有新任务,就取出来执行该任务。这种机制就像生产者消、费者模型一...

2021-09-10 22:56:20 1729 3

原创 CentOS7.6 安装RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。语言:erlang一句话描述:开源消息代理软件开源协议:MPL安装的版本:3.9.5。1. 安装ErlangRabbitMQ的版本和erlang的版本有对应关系的,若是两个软件的版本对应不上,启动时会报错,如下:escript: excep

2021-09-10 17:30:18 666

原创 linux 安装mysql 8.0.17

本文介绍两种安装方式:官网RPM包安装和源码包安装环境清单:操作系统:CentOS 7.6 x86 软件版本:MySQL 8.0.17及以上配置安装环境关闭防火墙并取消开机自启动1. 停止防火墙。systemctl stop firewalld.service2. 关闭防火墙。(执行disable命令关闭防火墙的同时,也取消了开机自启动。)systemctl disable firewalld.service3. 查看防火墙。(查看是否关闭成功)system

2021-08-28 16:03:53 1944

原创 linux 升级GCC到7.3.0版本

1. 下载软件,解压,并进入软件目录 gcc 7.3下载地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gzcd /data && wget https://mirrors.tuna.tsinghua.edu.cn/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gztar -xvf gcc-7.3.0.tar.gzcd gcc-7.3.0/2....

2021-08-28 15:21:30 1548

原创 linux 升级cmake版本到3.5.2

1. 下载软件包,解压并进入软件目录CMake 3.5.2下载地址:https://cmake.org/files/v3.5/cmake-3.5.2.tar.gzcd /data && wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gztar -zxvf cmake-3.5.2.tar.gzcd cmake-3.5.22. 安装(升级)cmake./bootstrapmake -j 8mak...

2021-08-28 14:09:15 1403

原创 python 两数相加算法题

力扣上的题:给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头示例1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例2:输入:l1 = [0], l2 = [0]输出:[0]示例3:输入:l1 = [9...

2021-08-27 22:33:34 486

原创 python 二叉树算法

二叉树概念:树中每个节点最多只有两个子节点的树结构。节点左边的子树通常叫做‘左子树’,右边的子树叫做‘右子树’代码实现:创建树,并添加节点,遍历树# coding:utf-8class Node(object): """数的节点类""" def __init__(self, item): self.elem = item self.lchild = None self.rchild = Noneclass Tree(o

2021-08-26 20:52:39 236

原创 python 二分查找法

二分查找法二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;二分查找要求在一个有序序列中,先找出折半的那个数mid,再用要查找的元素item与之比较,若item刚好等于mid,则返回true,若item的比mid大,则从序列的[mid+1:]中继续递归查找,若item比mid小,则从序列[:mid]中递归查找。代码实现(递归实现)def binary_search(alist, item): n = len(alist) if n == 0:

2021-08-25 16:30:16 157

原创 python 排序算法

冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。从未排序序列中的第一个元素开始,比较相邻的两个元素,如果第一个比第二个大,则交换它们的位置,一直比较到最后一个元素,针对所有的元素重复以上的步骤,除了最后一个。动图演示:代码实现:def bubble_sort(alist): for j in range(len(alist) - 1, 0, -1): # j表示每次遍历需要比较的次数,是逐渐减小的 for i in ran.

2021-08-24 16:20:32 450 4

原创 python 队列、双端队列的实现

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的先进先出的线性表。代码实现# coding:utf-8class Queue(object): """队列""" def __init__(self): self.__list = [] def enqueue(self, item): """往队列中添加一个item元素""" self.__list.append(item) def .

2021-08-24 11:27:09 160

原创 python 栈

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。算法实现# coding:utf-8class Stack(object): """栈""" def __init__(self): sel

2021-08-24 10:45:34 122

原创 python lru_cache缓存

@functools.lru_cache(maxsize=128,typed=False)@lru_cache装饰器可以提供缓存的功能,缓存maxsize组传入参数,在下次以相同参数调用时直接返回上一次的结果。用以节约高开销或I/O函数的调用时间。举个列子:普通计算斐波那契数列的递归代码import timeitcnt = 0def fib(n): if n == 1: global cnt cnt += 1 if n < ...

2021-08-23 23:08:19 993

原创 python实现LRU算法

LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。python中有一个标准库的类的OrderedDict,该类有以下两个方法用来实现LRU算法就十分简单:popitem(last=True):有序字典的 popitem() 方法移除并返回一个 (key, value) 键值对。 如果 last 值为真,则按 LIFO 后进先出的顺序返回键值对,否则就按 FIFO 先进先出的顺序返回

2021-08-23 20:15:43 3442

原创 Python timeit模块

timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt='pass', setup='pass', timer=<timer function>)参数:Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,与平台有关。timeit.Timer....

2021-08-20 16:08:40 235

原创 python容器数据类型 --- collections 详解

collections 是python3中的一个标准库,提供了9种容器用来解决特定的问题 namedtuple() 创建命名元组子类的工厂函数 deque 类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap 类似字典(dict)的容器类,将多个映射集合到一个视图里面 Counter 字典的子类,提供了可哈

2021-08-18 14:04:32 510

原创 python单向链表、单向循环链表、双向链表的实现

单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。节点实现class Node(object): """单链表节点""" def __init__(self, elem):.

2021-08-17 17:16:27 213

原创 Docker从入门到进阶

1. docker是什么Docker是一个开源的容器引擎,它基于LXC容器技术,使用Go语言开发。源代码托管在Github上,并遵从Apache2.0协议。Docker采用C/S架构,其可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。简单来说:Docker就是一种快速解决生产问题的一种技术手段。优点:环境部署速度快、安全 轻量级应用,一次打包到处运行 管理成本低缺点:依赖操作系统,...

2021-08-09 13:07:54 231 2

flask基础.rar

flask11111111111111111111

2021-10-25

空空如也

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

TA关注的人

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