python
PostgreSQL运维技术
这个作者很懒,什么都没留下…
展开
-
python 虚拟环境
1、安装virtualenv。pip3 install virtualenv2、查看版本,确认安装成功。virtualenv --version3、切到需要创建虚拟环境的项目文件根目录下cd /soft/tuya_database_backup4、创建文件夹。mkdir venv5、创建python虚拟环境并激活。virtualenv venvsource ./venv/bin/activate6、在该虚拟环境下安原创 2021-12-07 11:22:54 · 648 阅读 · 0 评论 -
zipimport.ZipImportError: can‘t decompress data; zlib not available
python安装报错:zipimport.ZipImportError: can't decompress data; zlib not available解决:yum -y install zlib*原创 2021-11-13 18:16:37 · 2222 阅读 · 0 评论 -
ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory
执行python脚本,报错:ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory。看意思是缺少libpython3.6m.so.1.0这个动态库。在机器上查找这个库:sudo find / -name libpython3.6m.so.1.0如果在本地能找到,就将其复制到/usr/lib64目录下。cp libpython3.6m.so.1.0 /usr原创 2021-11-13 11:14:33 · 9997 阅读 · 0 评论 -
psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory
Centos7 使用pip安装psutil时报错,提示: psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory #include <Python.h> ^ compilation terminated. error: command 'gcc' failed with exit status 1解决:...原创 2021-11-12 17:04:00 · 1819 阅读 · 0 评论 -
zlib.error: Error -5 while decompressing data: incomplete or truncated stream
参考:https://stackoverflow.com/questions/32367005/zlib-error-error-5-while-decompressing-data-incomplete-or-truncated-stream-inmysql业务表中有一个字段longtext类型,数据太大,所以决定使用zlib压缩之后存储到mysql中。在存入的时候,使用zlib.compress进行压缩,在查询的时候,使用zlib.decompress进行解压缩。压缩: compres原创 2021-07-16 15:41:11 · 3726 阅读 · 0 评论 -
python 获取当前线程的系统线程ID
我们通常使用的threading.currentThread().ident,获取的是threading对象的标识ident,而并非系统线程ID。那么怎么才能获取系统线程ID呢?答案:使用ctypes调用系统的动态链接库libc.so.6 来获取线程id。参考:python代码示例:import ctypesSYS_gettid = 186libc = ctypes.cdll.LoadLibrary('libc.so.6')tid = libc.syscall(SYS_ge原创 2021-04-23 14:49:27 · 4381 阅读 · 0 评论 -
Azure云MySQL/PostgreSQL库的Python SDK使用示例
参考:https://docs.microsoft.com/en-us/python/api/overview/azure/postgresql-mysql?view=azure-python首先:pip install azure-mgmt-rdbmsdemo文件from azure.mgmt.rdbms.mysql import MySQLManagementClientfrom azure.mgmt.rdbms.mysql.models import *SUBSCRIPTION原创 2021-03-18 14:24:57 · 234 阅读 · 0 评论 -
python调用aws api Amazon Aurora
什么是Amazon Aurora?https://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.htmlpython SDK:https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.htmlSDK包含2个主要的python包:botocore和boto3使用pip安装pip ins原创 2021-03-08 20:35:08 · 1112 阅读 · 0 评论 -
Mac OS python3.6版本报SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)错误
参考:https://bugs.python.org/issue29065原因:我用的python3.6是从python.org上下载的MacOS二进制安装程序。这个版本有个特性,就是它不再依赖MacOS的openSSL。它附带了自己的openSSL,并且不能访问MacOS的根证书。解决方案:open "/Applications/Python 3.6/Install Certificates.command"这个命令用于从第三方证书包(https://pypi.python.org/p原创 2021-03-03 13:21:57 · 527 阅读 · 0 评论 -
PyZmq Tornado Event Loop
pyzmq是ZeroMQ消息库的Python包装器。Facebook的Tornado包括一个eventloop,用于在文件描述符和本机套接字上处理轮询事件。pyzmq已经包含了Tornado的一小部分(特别是它的ioloop),并将其IOStream类适配到ZMQStream中,以处理ØMQ套接字上的轮询事件。ZMQStream对象的工作方式与套接字对象非常相似,但不是直接调用recv(),而是使用on_recv()注册回调。回调函数也可以通过on_send()来注册send事件。下面是一个带有ze原创 2021-01-27 21:22:50 · 611 阅读 · 0 评论 -
python 重试功能装饰器demo
代码:class Retry(object): def __init__(self, tries=16, delay=10): self.tries = tries self.delay = delay def __call__(self, f): def fn(*args): exception = None t = 0 while t < self.tr原创 2020-12-28 14:26:43 · 120 阅读 · 0 评论 -
python docker-compose
参考文档:https://pypi.org/project/docker-compose/源码:https://github.com/docker/composecompose是一个定义和运行多容器docker应用程序的工具。通过compose,我们可以使用一个yaml文件来配置应用程序需要的所有服务。然后,使用一个简单的命令,就可以从配置中创建和启动所有的服务。Docker Compose有两个重要的概念:服务(Service):一个应用容器,实际上可以包含若干运行相同镜像的容器实例项原创 2020-11-17 16:37:43 · 3117 阅读 · 1 评论 -
python将docker-compose.yaml导入到数据库相关条目中
实现将docker-compose.yaml导入相关的数据库条目的功能,利用python脚本,yaml、sqlalchemy、json等模块实现。docker-compose.yaml_version: "1"services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1python dem原创 2020-11-16 16:24:53 · 356 阅读 · 0 评论 -
Python any() 函数
any() 函数用于判断给定的可迭代参数 iterable 是否全部为 False,则返回 False,如果有一个为 True,则返回 True。注:怎么理解python的可迭代对象: Python中的可迭代对象有:列表、元组、字典、字符串;常结合for循环使用;怎么判断一个对象是否是可迭代对象?from collections import Iterableisinstance([1, 2], Iterable)demo:def _need_pull_image(poli原创 2020-11-02 16:54:15 · 279 阅读 · 0 评论 -
python 检测端口是否被占用
import socketdef check_port_in_use(port, host='127.0.0.1'): s = None try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.settimeout(1) s.connect((host, int(port))) return True except socket.error: .原创 2020-07-29 10:56:20 · 4366 阅读 · 0 评论 -
pycharm 关闭search everywhere
我的是shift+] 会打开search everywhere, 很影响操作。怎么关掉?解决:打开设置(settings)找到keymap,在other中搜索everywhere 更换或者去除快捷键。原创 2020-07-14 11:33:35 · 642 阅读 · 0 评论 -
附近地点搜索解决方案之基于球面距离公式的算法
球面上任意两点之间的距离计算,我们采用Haversine公式。其中R为地球半径,取6371km; φ1, φ2表示两点的纬度; Δλ 表示两点经度的差值。 d就是我们要求的距离用python实现下计算球面两点之间距离的函数:from math import sin, asin, cos, radians, fabs, sqrtEARTH_RADIUS=6371 # 地球平均半径,6371kmdef hav(theta): s = s...原创 2020-06-03 17:48:42 · 596 阅读 · 0 评论 -
不可见的unicode字符
项目中执行到代码如:x = x.encode(encoding)报错:'latin-1' codec can't encode character u'\u202d' in position 0: ordinal not in range(256)。可见是编码问题。报错信息显示这个x字符串中含有异常的字符u'\u202d',奇怪的是这个x对应到我代码中只是一个简短的数字而已,此处为mem后的数字98304,并没有u'\u202d'字符,奇怪了...mem: 98304于是查了下原来.原创 2020-05-22 15:51:40 · 2396 阅读 · 0 评论 -
python项目的构建setup.py
参考:https://setuptools.readthedocs.io/en/latest/setuptools.htmlhttps://blog.konghy.cn/2018/04/29/setup-dot-py/应用场景:在安装python的相关模块和库时,我们一般使用“pip install 模块名”,或者使用“python setup.py install”,前者是在线安...原创 2020-03-25 18:18:44 · 1403 阅读 · 0 评论 -
python调试模块pdb
模块pdb为Python程序定义了一个交互式源代码调试器。它支持在源代码行级别设置(有条件的)断点和单步执行,检查堆栈帧,列出源代码,以及在任何堆栈帧上下文中计算任意Python代码。它还支持事后调试,可以在程序控制下调用。只需要引入内置的pdb模块,并运行set_trace函数就可以触发调试器。通常将这两个操作写在一行中便于将其注释。形如:import pdb;pdb.set_trace...原创 2020-01-08 15:52:14 · 795 阅读 · 0 评论 -
python中__init__.py是干啥用的(what is the __init__.py file for)?
参考:https://stackoverflow.com/questions/448271/what-is-init-py-forPython定义了两种类型的包,常规包(regular package)和命名空间包(namespaces package)。常规包是传统的包,因为它们存在于Python 3.2和更早的版本中。一个常规的包通常被实现为一个包含一个_init_ .py文件的目录。当导...原创 2020-01-08 14:11:05 · 1879 阅读 · 0 评论 -
python pyc文件的反编译
编译:py --->pycpython -m compileall test.py反编译: pyc--->py安装uncompylepip install uncompyle查看帮助uncompyle6 --help 反编译uncompyle6 test.pyc将models.pyc反编译并输出到py文件.uncompyle6 test.pyc ...原创 2019-12-11 19:42:00 · 1502 阅读 · 0 评论 -
AttributeError: 'module' object has no attribute 'BufferedIOBase' installing
python程序运行时报错:class GzipFile(io.BufferedIOBase):AttributeError: 'module' object has no attribute 'BufferedIOBase'我们看到BufferedIOBase是io库的类,按说应该是有这个类的。我们查找io库的代码,也确实发现了BufferedIOBase。那么报这个错...原创 2019-12-06 11:43:26 · 1058 阅读 · 0 评论 -
python连接pgsql demo
import psycopg2try: host = "11.167.252.45" port = 3433 account = "testacc" password = "wkl_test123" connect_timeout= 3 options = "-c DateStyle=ISO" conn = psycopg2.conne...原创 2019-12-05 09:56:06 · 2210 阅读 · 0 评论 -
python基础之ORM
SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结果。ORM框架的作用就是把数据库表的一行记录与一个对象互相做自动转换。创建表注:create_engine()用来初始化数据库连接。SQLAlchemy用一个字符串表示连接信息:'数据库类型+...原创 2019-10-30 14:33:27 · 381 阅读 · 0 评论 -
Django 入门
参考文档:https://andrew-liu.gitbooks.io/django-blog/models.html1、新建一个 django projectdjango-admin.pystartprojectmy_blog注: windows的话,如果报错,可改成:django-adminstartprojectproject_name、注意执行这个命令的目录路径...原创 2019-05-29 16:49:58 · 227 阅读 · 0 评论 -
python的直接赋值、浅拷贝和深拷贝
直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。直接赋值:a和b都指向同一对象浅拷贝:b = a.copy():浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。如:...原创 2019-05-29 11:24:53 · 237 阅读 · 0 评论 -
在python中如何比较两个float类型的数据是否相等
计算机里面的数字是由二进制保存的,在计算机内部有些数字不能准确的保存,于是就保存了一个最靠近的数字。计算机表示浮点数(float或double类型)都有一个精度限制,对于超出了精度限制的浮点数,计算机会把它们的精度之外的小数部分截断。因此比较两个float是否相等,不能仅仅依靠==来判断,而是当他们的两者的差值小于一个我们可以容忍的小值时,就可以认为它们相等。如: return ...原创 2019-05-28 14:23:30 · 13902 阅读 · 4 评论 -
python中的装饰器
1、闭包python是一种面向对象的编程语言,在python中一切皆对象,这样就使得变量所拥有的属性,函数也同样拥有。这样我们就可以理解在函数内创建一个函数的行为是完全合法的。这种函数被叫做内嵌函数,这种函数只可以在外部函数的作用域内被正常调用,在外部函数的作用域之外调用会报错,例如:而如果内部函数里引用了外部函数里定义的对象(甚至是外层之外,但不是全局变量),那么此时内部函数就被称为闭包...原创 2019-05-28 11:49:55 · 116 阅读 · 0 评论 -
从尾到头打印链表——【一天一道算法题】
输入一个链表,按链表值从尾到头的顺序返回一个ArrayList。思想:栈的思想# -*- coding:utf-8 -*-# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # 返回从尾部到头部的列表值序列...原创 2018-09-26 20:13:55 · 147 阅读 · 0 评论 -
python自定义异常
Exceptionpython的异常分为两种.1、内建异常,就是python自己定义的异常。如:RuntimeError、IOError、IndentationError等2、用户自定义异常。常见的内置异常有:用户自定义异常首先需要继承Exception类如:Class CustomerError(Exception): def __init__(self,...原创 2019-06-11 11:48:03 · 2170 阅读 · 0 评论 -
python 函数参数* 和** 的使用
单个星号*(1)*parameter 是用来接受任意多个参数并将其放在一个元组中。如:def demo(*params): for param in params: print(param)a = [1]b = [2,3]demo(a, b)输出为:[1][2, 3](2)函数在调用多个参数时,在列表、元组、集合、字典及其他可迭代...原创 2019-07-24 10:12:24 · 454 阅读 · 0 评论 -
commands结合ssh执行远程命令
python中commands模块,结合linux ssh命令。如给远程主机批量安装yum包:#-*- coding: UTF-8 -*-import subprocessimport sysimport commandsclass client(object): def __init__(self): self.linux_list = ['root@1...原创 2019-07-17 14:28:14 · 420 阅读 · 0 评论 -
理解python中的元类
这是一篇在Stack overflow上很热的帖子。e-satis同学高赞回答的译文。类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(objec...原创 2019-08-06 17:16:44 · 83 阅读 · 0 评论 -
python中单下划线和双下划线。
有如下代码:>>> class MyClass():... def __init__(self):... self.__superprivate = "Hello"... self._semiprivate = ", world!"...>>> mc = MyClass()>>...原创 2019-08-06 17:59:27 · 184 阅读 · 0 评论 -
python __enter__ 与 __exit__
python中这两个方法有with语句联系紧密。可以说with语句的基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。比如with语句最常用的打开文件的操作。wi...原创 2019-09-16 14:47:04 · 1120 阅读 · 0 评论 -
python多个装饰器的执行顺序
def decorator_a(func): print 'Get in decorator_a' def inner_a(*args, **kwargs): print 'Get in inner_a' return func(*args, **kwargs) return inner_adef decorator_b(func):...原创 2019-05-28 10:17:48 · 617 阅读 · 0 评论 -
算法:比较版本号大小
java版:class test { public int versionCompare(String version1, String version2) { String[] v1Arr = version1.split("\\."); String[] v2Arr = version2.split("\\."); int i =...原创 2019-04-30 13:42:43 · 3735 阅读 · 0 评论 -
python的OptionParser库
内建库,可以方便地生成标准的、符合Unix/Posix 规范的命令行说明。示例:from optparse import OptionParserparser = OptionParser()parser.add_option('-v', "--enable_validate_biz", dest='enable_validate_biz', default='true', ...原创 2019-04-28 15:00:21 · 715 阅读 · 0 评论 -
python socket模块getaddrinfo
函数原型:socket.getaddrinfo(host, port[, family[, socktype[, proto[, flags]]]])返回值:[(family, socktype, proto, canonname, sockaddr)]有元组组成的列表,元组里面包含5个元素,其中sockaddr是(host,port)family: 表示socket使用的协议簇。常用的协...原创 2018-11-12 10:38:05 · 2515 阅读 · 0 评论