linux进程管理工具supervisor部署配置

Supervisor是用Python开发的一个client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它可以很方便的监听、启动、停止、重启一个或多个进程。因为supervisor依赖python,所以确保我们环境中装有python,接下来我看下这个工具的部署配置和使用方法首先我们需要安装python和pip工具,我们本地操作系统是centos7yum install -y python3 python3-pip接着使用python的pip管理工具进行安装pip3&n...

阅读全文

centos7编译安装python3.9

之前记录了centos6上编译安装python3.7的笔记,目前服务器系统使用的centos7,而且需要使用高版本的python,所以更新下笔记。centos7编译安装python3时需要OpenSSL1.1.1+以上版本,否则就会报错,而centos7自带OpenSSL1.0.2k版本,满足不了编译安装python3.9的要求,所以我们需要先编译安装的1.1.1+以上版本openssl,这里我们选择了openssl-1.1.1w这个版本,下面来看看编译安装过程首先需要安装依赖包yum install -y zlib&n...

阅读全文

评估AI性能的python库ai-benchmark

AIBenchmarkAlpha是一个开源的python库,用于评估各种硬件平台的AI性能,包括cpu,gpu和tpu。该基准依赖于TensorFlow机器学习库,并为评估关键深度学习模型的推理和训练速度提供了一个轻量级和准确的解决方案。我们来看下如何使用pip install tensorflow-gpu pip install ai-benchmark需要安装上述两个包,安装完成以后我们需要,给ai-benchmark执行权限chmod + /usr/local/bin/...

阅读全文

python中UUID模块解析

UUID(全称为UniversallyUniqueIDentifier)是128位的全局唯一标识符。UUID是一个128比特的数值,这个数值可以通过一定的算法计算出来。为了提高效率,常用的UUID可缩短至16位。保证在一定的空间和时间上的唯一性,通常定义用来做唯一标识对象。UUID通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性,目前一共有五种算法,分别是uuid1,uuid2,uuid3,uuid4,uuid5,其中python中没有基于DCE的,所以在python中uuid2算法可以忽略。uuid1基于时间戳由MAC地址...

阅读全文

python协程库asyncio的基本用法

asyncio库是python实现异步任务的库,在python3.4引入,在3.5和3.7分别都有一些改进和用法的改变协程本质就是一种用户态的上下文切换技术,我们创建事件循环,然后将我们的任务丢入到这个事件循环中就实现了任务的异步IO本地环境python3.9,所以例子可能无法在python3.8以下环境跑通,咱们也不再回头学习低版本python中的写法了。首先我们要了解几个关键字的含义async:用来声明一个函数为异步函数,异步函数的特点是函数能在执行的过程中挂起,去执行其他的异步函数,等到挂起条件消失后,再回来执行后续代码。await:await会把...

阅读全文

python k8s api操作类

网上找了零散的,然后看了k8s的pythonapi,里面很有方法,大致整理了一下操作的封装,很多操作返回都有to_dict()方法可以直接将返回的对象转为字典,之前没注意,后面懒得改了,写的比较乱,直接记录下来方便以后使用。#!/usr/bin/python3#coding:utf-8__author__ = 'yang.su'from kubernetes import client, configfrom app.common impo...

阅读全文

python获取每月第一天和最后一天

python获取每月第一天和最后一天主要使用了datetime模块,其中datetime模块定义了5个类,如下:datetime.date:表示日期的类,常用的属性有year, month, daydatetime.datetime:表示日期时间的类,常用的属性有hour, minute, second, microseconddatetime.time:表示时间的类datetime.timedelta:表示时间间隔,即两个时间点的间隔。在日期上做天days,小时hour,分钟,秒,毫秒,微秒...

阅读全文

pynvml模块使用方法

最近有需要使用nvml调用底层显卡信息的需求,所以查了下python有相关的模块pynvml可以使用,下面就直接看看一些基本使用的方法首先我们安装这个模块pip install nvidia-ml-py3然后使用时我们需要初始化该方法import pynvmlpynvml.nvmlInit()使用外以后也需要进行关闭,类似于析构方法pynvml.nvmlShutdown()然后下面是收集的一些常用方法模块#!/usr/bin/python3#pip install nvidia-ml-py3i...

阅读全文

flask在before_request中添加特定路由到例外(拦截器)

标题可能描述的不太清理,就是例如我在before_request中检测用户登录状态,当用户没有登录就转向/login登录页面,但是这里就有一个问题,当/login登录跳转的页面也会触发before_request,这个时候还没完成登录动作,session也没保存,当然就不是登录状态,所以又转向了/login登录页面,从而造成了死循环,那么我们就需要在before_request请求的方法中添加一些这种特定的路由,对他们进行放行示例代码如下@app.before_requestdef verify_login():  ...

阅读全文

python类特殊方法__setitem__的作用

在python的类中定义了特殊方法__setitem__,这个方法与之对应是之前咱们学习的__getitem__方法,具体的可以查看这里的笔记https://sulao.cn/post/862.html,一个是用key的方式获取,一个是用key的方式来设置对象的值为新值,注意,设置的对象应该是存在,当然这个对象可变时才需要实现这个方法我们还是直接使用上次的例子修改下class TestFunc:    ip = "127.0.0.1"  ...

阅读全文