
Python
文章平均质量分 84
Buzz.Lightyear
Nobody got bug-free inside its DNA except Kendrick Lamar!
展开
-
python实现将服务注册到consul
import consulclass Consul(object): def __init__(self, address, port): '''初始化,连接consul服务器''' self._consul = consul.Consul(address, port) def register_service(self, name,service_id, address, port, tags=None): tags = tags .原创 2020-11-12 09:46:17 · 1350 阅读 · 1 评论 -
pip3 -bash: /usr/bin/pip3: No such file or directory
Context:将python3添加至环境变量ln -s /usr/local/python3.6/bin/pip3.6 /usr/bin/pip3校验pip3 命令Error:-bash: /usr/bin/pip3: No such file or directorySolution:mv usr/local/python3.6/bin/pip3 /usr/bin/原创 2020-08-19 14:02:13 · 6039 阅读 · 0 评论 -
Python3 source code package installation on CentOS 7
centos7 源码安装python31.非常重要!必须得先安装py3所依赖的软件包,否则可能会出现py3安装成功,却缺少相应的pip yum groupinstall "Development tools" yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel2 .wegt下载py3源码 或者自己去官网下载源码包wget https://原创 2020-08-19 11:42:25 · 373 阅读 · 0 评论 -
进程和线程processing and threading
几乎所有的操作系统都支持同时运行多个任务,每个任务通常是一个程序,每一个运行中的程序就是一个进程,即进程是应用程序的执行实例。现代的操作系统几乎都支持多进程并发执行。注意,并发和并行是两个概念,并行指在同一时刻有多条指令在多个处理器上同时执行;并发是指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。例如,程序员一边开着开发工具在写程序,一边开着参考手册备查,同时还使用电脑播放音乐……除此之外,每台电脑运行时还有大量底层的支撑性程序在运行……这些原创 2020-07-17 17:20:38 · 533 阅读 · 0 评论 -
puppet和saltstack 对比
puppet saltstack 跳板机 支持 支持 扩展性 中 强(可扩展开发module) 活跃度(githubstar) 5.8K(2012年开始) 11.1k(2016年开始) 开发语言 ruby ...原创 2020-07-08 14:24:35 · 539 阅读 · 0 评论 -
salt-key commands
Master: 10.20.10.24Minion: 10.20.10.151minion服务启动后每隔10秒会先master发一下公钥认证申请salt-key-L # 列出所有未被接受的公钥-a # 接受(Accept)指定的主机公钥,后面接主机名-r # 拒绝(Reject)指定的主机公钥,后面接主机名-d # 拒绝(Deny)指定的主机公钥,后面接主机名-A # 接受(Accept)所有的主机公钥-R # 拒绝(Reject)所有的主机.原创 2020-06-30 11:02:50 · 142 阅读 · 0 评论 -
saltstack 常用配置参数说明
一、Master常用配置选项说明cat /etc/salt/master interface:指定bind的地址(默认为0.0.0.0) publish_port:指定发布端口(默认为4505) ret_port:指定结果返回端口,与minion配置文件中的master_port对应(默认为4506) user:指定master进程的运行用户,如果调整,则需要调整部分目录的权限(默认为root) timeout※:指定timeout时间,如果m...原创 2020-06-29 18:09:25 · 5401 阅读 · 0 评论 -
saltstack master和minion 如何建立互信
Master端与Minion端通信原理1、Master与Minion认证原理1)minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成minion.pem(private key)和 minion.pub(public key),然后将minion.pub发送给master。2)master在接收到minion的public key后,通过salt-key命令接受minion端public key,这样在master的/etc/salt/pki/master/minio原创 2020-06-29 15:54:23 · 764 阅读 · 0 评论 -
saltstack installation
环境:centos7.6Note: 配置epel源yum install -y epel-release(这个源下载是2015年的)2015年的比较早了,最新的是3000,不建议安装旧版本1.yum 安装3000版本sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-3000.el7.noarch.rpm 2.yum install salt-master -y3.配置yum源 cd /etc/yum原创 2020-06-29 21:28:54 · 200 阅读 · 0 评论 -
Search File
for root, _dirs, files in os.walk(dir_path): #查找文件 root为当期目录 _dirs为目录下的子目录名称 列表形式 files是文件名 列表形式 for file in files: if file.startswith(server_obj.ipmiIp) is True: sub_dir = os.path.join(r...原创 2020-05-23 22:19:13 · 620 阅读 · 0 评论 -
Python2和3 共存下 No module named xxx
Background&Error:服务器环境Python2和Python3共存,执行Python脚本获取下载服务器bmc日志,执行脚本报错netaddr.ip module 不存在,明明安装时,特意pip2 install netaddrPython2和3的第三方包要分开安装,因为两个环境有不一样的项目,每个项目有不一样的依赖包。Solution:python2 xxx.py 用python2 去执行依赖python2环境的脚本,这样就行查找到pip2 install的第三方模块原创 2020-05-14 10:32:42 · 626 阅读 · 0 评论 -
download file
# 通过密码构建连接def transportPasswordFactory(ip, password, port, username): try: transport = paramiko.Transport((ip, port)) transport.connect(username=username, password=password) ...原创 2020-04-27 21:43:33 · 357 阅读 · 0 评论 -
simulating passing parameters of front end by requests module
@action(detail=False, methods=['post'], url_name="新增模板") def create_template(self, request): success = True message = "创建成功" # logging.error("request.body%s" % request.bod...原创 2020-04-08 09:39:20 · 124 阅读 · 0 评论 -
compress files into .targz
import osimport tarfile# 压缩文件gzdef make_targz(output_filename, tar_local_path): # 创建压缩包名 tar = tarfile.open(output_filename, "w:gz") # 创建压缩包 for root, dir, files in os.walk(tar_lo...原创 2020-04-01 17:01:47 · 123 阅读 · 0 评论 -
convert key-value string parameter to dictionary
def parse_kv(args): options = {} for x in args.split(): if "=" in x: k, v = x.split("=", 1) options[k.strip()] = v.strip() return optionsargs="validate_...原创 2020-02-24 16:50:38 · 150 阅读 · 0 评论 -
AccessRefused: (0, 0): (403) ACCESS_REFUSED - Login was refused using authentication mechanism
Error:ERROR:ansibleAPI:Exception on /ansible/playbook [POST]Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/flask/app.py", line 2446, in wsgi_app response = self.fu...原创 2020-02-20 15:42:01 · 3589 阅读 · 0 评论 -
File “/usr/share/createrepo/genpkgmetadata.py”,line 207 except EnvirontmentError,e:
Error:命令行输入createrepo报错:修改genpkgmetadata.py 开头的环境,python后面加2.7,保存退出,执行creatrepo命令依然报错如上图。因为这个文件默认的环境变量配置是CentOS7自带的Python2.7Solution:# 修改软连接,使之python指向python2.7# which python 查看Pyt...原创 2020-01-21 17:36:42 · 2063 阅读 · 1 评论 -
python compileall.py
usage: python compileall.py [-l] [-f] [-q] [-d destdir] [-x regexp] [-i list] [directory|file ...]arguments: zero or more file and directory names to compile; if no arguments given, def...原创 2020-01-14 14:23:33 · 213 阅读 · 0 评论 -
Python发布Django项目的pyc版脚本
import osimport sysfrom py_compile import compile #print "argvs:",sys.argv if len(sys.argv) == 3: comd = sys.argv[1] path = sys.argv[2] if os.path.exists(path) and os.path.isdir(pat...原创 2020-01-14 14:02:31 · 398 阅读 · 0 评论 -
Python ElementTree XML
新建测试数据 example.xml<?xml version="1.0" encoding="utf-8"?><data> <country name="Liechtenstein"> <rank>1</rank> <year>2008</year> ...原创 2019-12-25 17:12:16 · 194 阅读 · 0 评论 -
Python Dictionary __contains__(key)
# Python 2 中字典(Dictionary) has_key() 函数用于判断键是否存在于字典中,# 如果键在字典dict里返回true,否则返回false。# 使用如下: dict.has_key(key) dict = {'Name':'Python','Age':'28'} # 定义字典print(dict.has_key('Name')) # Tr...原创 2019-12-23 17:29:32 · 1100 阅读 · 0 评论 -
Python cookbook 判断线程是否已经启动
判断线程是否已经启动问题你已经启动了一个线程,但是你想知道它是不是真的已经开始运行了。解决方案线程的一个关键特性是每个线程都是独立运行且状态不可预测。如果程序中的其他线程需要通过判断某个线程的状态来确定自己下一步的操作,这时线程同步问题就会变得非常棘手。为了解决这些问题,我们需要使用threading库中的Event对象。Event对象包含一个可由线程设置的信号标志,它...原创 2019-12-19 15:08:55 · 970 阅读 · 0 评论 -
Python cookbook 启动与停止线程
启动与停止线程问题你要为需要并发执行的代码创建/销毁线程解决方案threading库可以在单独的线程中执行任何的在 Python 中可以调用的对象。你可以创建一个Thread对象并将你要执行的对象以 target 参数的形式提供给该对象。 下面是一个简单的例子:# Code to execute in an independent threadimport time...原创 2019-12-19 14:33:18 · 139 阅读 · 0 评论 -
SyntaxError: invalid syntax File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e
[root@46500f7f3367 ]# yum install httpdLoaded plugins: fastestmirror, ovlLoading mirror speeds from cached hostfile * base: mirror.jdcloud.com * extras: ap.stykers.moe * updates: mirror.jdcloud....原创 2019-12-12 15:43:44 · 3128 阅读 · 2 评论 -
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 816: illegal multibyte sequence
Problem :Python 3.6 虚拟环境里 pip install -r requirements.txt 报错UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 816: illegal multibyte sequence(up-env) C:\Users\micha\Desktop\up...原创 2019-11-28 14:55:24 · 1229 阅读 · 0 评论 -
Python yield生成器 函数
一般而言包含yield关键词的函数就是生成器函数,生成器函数最终返回的是一个生成器。>>> def count_num():... yield 1... yield 2... yield 3... yield 4... return... num=count_num()## 调用next()依次向下取值,yiel...原创 2019-11-26 23:23:22 · 451 阅读 · 0 评论 -
Python 破解文字验证码登录
# -*- coding: utf-8 -*-import refrom selenium.webdriver import ActionChainsfrom selenium import webdriverfrom PIL import Imageimport jsonimport timefrom BaiDu_SDK.aip.ocr import AipOcrfrom PI...原创 2019-11-25 17:45:10 · 1237 阅读 · 0 评论 -
CentOS7安装Python3.6
安装python3.6可能使用的依赖yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel下载压缩包 wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz解压编译tar -zxvf...原创 2019-11-18 16:30:26 · 184 阅读 · 0 评论 -
Python 读取Excel文件
def read_excel_model(file, modelBase=None, dbFields=None, rackhdRegion=None): """ 读取excel内容,自动转换为model实体,如果读取为float自动转为int :param file: 文件路径: :param modelBase: 实体类: :param d...原创 2019-11-12 17:29:11 · 216 阅读 · 0 评论 -
Python 将数据导出为Excel文件
Web项目基本是都是在搞各种平台,系统,所谓的信息化、数字化建设,其中项目中难免会有将页面的数据导出为Excel文件的功能,比如一个执行记录列表、操作日志列表等等。常用的方法,索性封装成一个方法,随时可以调用,召之即来,来之能打。 ~~DJ drop the ...原创 2019-11-12 17:25:32 · 6287 阅读 · 0 评论 -
Python Zookeeper 注册和发现服务
#!/usr/bin/env python# -*- coding: utf-8 -*import timeimport randomimport loggingfrom kazoo.client import KazooClientfrom kazoo.exceptions import NodeExistsErrorfrom kazoo.client import Kazoo...原创 2019-11-12 14:36:17 · 2731 阅读 · 1 评论 -
Python 序列化Python对象
序列化Python对象问题你需要将一个Python对象序列化为一个字节流,以便将它保存到一个文件、存储到数据库或者通过网络传输它。解决方案对于序列化最普遍的做法就是使用pickle模块。为了将一个对象保存到一个文件中,可以这样做:import pickledata = ... # Some Python objectf = open('somefile', 'wb'...原创 2019-10-22 21:38:34 · 461 阅读 · 0 评论 -
Python与串行端口的数据通信
与串行端口的数据通信问题你想通过串行端口读写数据,典型场景就是和一些硬件设备打交道(比如一个机器人或传感器)。解决方案尽管你可以通过使用Python内置的I/O模块来完成这个任务,但对于串行通信最好的选择是使用pySerial包。 这个包的使用非常简单,先安装pySerial,使用类似下面这样的代码就能很容易的打开一个串行端口:import serialser = se...原创 2019-10-22 21:30:28 · 543 阅读 · 0 评论 -
Python 脚本一键安装Oracle数据库
安装Oracle数据库有些繁琐,主要有一下几方面:1.相应的rpm包的安装2.操作系统内核调整3.oracle操作系统用户创建和相关目录,环境变量配置以上三点是安装oracle之前的前期工作,如果前期工作没有准备好,则在安装过程中必然会出现问题。Python以其灵活高效的编程模式成为运维自动化的首选,利用Python则可以方便的完成上面提出的前期准备工作以及后续的自动化安...转载 2019-10-22 17:00:57 · 792 阅读 · 0 评论 -
Python 创建临时文件和文件夹
创建临时文件和文件夹问题你需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。解决方案tempfile模块中有很多的函数可以完成这任务。 为了创建一个匿名的临时文件,可以使用tempfile.TemporaryFile:from tempfile import TemporaryFilewith TemporaryFile('w+t') as f...原创 2019-10-22 21:25:45 · 476 阅读 · 0 评论 -
Python 将文件描述符包装成文件对象
将文件描述符包装成文件对象问题你有一个对应于操作系统上一个已打开的I/O通道(比如文件、管道、套接字等)的整型文件描述符, 你想将它包装成一个更高层的Python文件对象。解决方案一个文件描述符和一个打开的普通文件是不一样的。 文件描述符仅仅是一个由操作系统指定的整数,用来指代某个系统的I/O通道。 如果你碰巧有这么一个文件描述符,你可以通过使用open()函数来将其包装为一个...原创 2019-10-21 17:39:32 · 323 阅读 · 1 评论 -
Python sys.stdout.buffer.write()将字节写入文本文件
将字节写入文本文件问题你想在文本模式打开的文件中写入原始的字节数据。解决方案将字节数据直接写入文件的缓冲区即可,例如:>>> import sys>>> sys.stdout.write(b'Hello\n')Traceback (most recent call last): File "<stdin>", lin...原创 2019-10-21 17:20:22 · 4054 阅读 · 0 评论 -
Python 增加或改变已打开文件的编码
增加或改变已打开文件的编码问题你想在不关闭一个已打开的文件前提下增加或改变它的Unicode编码。解决方案如果你想给一个以二进制模式打开的文件添加Unicode编码/解码方式, 可以使用io.TextIOWrapper()对象包装它。比如:import urllib.requestimport iou = urllib.request.urlopen('http:/...原创 2019-10-21 17:13:08 · 781 阅读 · 0 评论 -
Pycharm Python console 报错:Cannot start process, the working directory '' does not exist
Problem:Solution:setting-->Build,Execution,Deployment原创 2019-10-21 17:00:08 · 1103 阅读 · 0 评论 -
Python UnicodeEncodeError 和 surrogates not allowed 报错处理
打印不合法的文件名问题你的程序获取了一个目录中的文件名列表,但是当它试着去打印文件名的时候程序崩溃, 出现了UnicodeEncodeError异常和一条奇怪的消息——surrogatesnotallowed。解决方案当打印未知的文件名时,使用下面的方法可以避免这样的错误:def bad_filename(filename): return repr(fi...原创 2019-10-21 16:26:36 · 5465 阅读 · 0 评论