pip 小老弟,你怎么肥四?
今天用pip的时候突然不能正常使用,在这里简单记录一下。
提示pip版本不对错误提示You are using pip version 9.0.3, however version 18.0.1 is available.You should consider upgrading via the 'python -m pip install --upgrade pip' command.
处理过程去官网下载最新版的包,直接解压安装即可;
参考来源Python2.7 自带的 pip9.0 升级到 pip18.0
明确已经安装pip,但是系统提示找不到pip错误提示-bash: /home/imoyao/.local/bin/pip: No such file or directory
解决方案1.which pip /usr/local/bin/pip2.pip -su: /usr/bin/pip: No such file or directory3.type pip pip is hashed (/usr/bin/ ...
DRBD 备忘记录
这是一个关于 DRBD 的使用备忘录。
开始阅读之前,请先注意示例中使用的 DRBD 版本
drbdadm -V# DRBDADM_VERSION=8.4.3
注意:安装的 kernel-devel 的内核源码(内核源码路径/usr/src/kernel/)和当前系统的 kernel 版本(uname -r)不一致的话需要把当前内核更新一下。在2.6.33及以上版本的内核默认中有DRBD,之前在用的DRBD主要8.0、8.2、8.3 三个版本,对应的rpm包是drbd,drbd82和drbd83,因此需要安装对应的内核模块,对应的名字为kmod-drbd,kmod-drbd82,kmod-drbd83。由于drbd是作为内核模块进行工作的,故建议使用与内核对应的版本,对应关系如下表。
Linux releases
DRBD releases
2.6.33
8.3.7
2.6.34
8.3.7
2.6.35
8.3.8
2.6.36
8.3.8.1
2.6.37
8.3.9
2.6.38
8.3.9
2.6.39
8.3.10
3.0 - 3 ...
DRBD 状态指标记录
在管理DRBD的时候,需要关注drbd相关的各种状态指标,本文主要记录相关的指令及显示含义。
DRBD状态概览drbd-overviewdrbd statuscat /proc/drbd # 9.0废止在drbd9中,更多的是使用drbdadm或drbdsetup来获取节点的状态信息。
以上命令略有不同,可自行对照
[root@Storage drbd]# pwd/usr/lib/drbd[root@Storage drbd]# ./drbd status# 输出示例drbd driver loaded OK; device status:version: 8.4.3 (api:1/proto:86-101)GIT-hash: 89a2942***221f964d3ee515 build by root@third, 2017-07-20 10:58:42m:res cs ro ds p mounted fstype0:drbd0 C ...
DRBD 使用外部元数据
裂脑一旦发生,需要及时排查问题所在,最大限度保护数据完整性。
meta data存放位置优缺点比较internal meta-datameta-data 和数据存放在同一个底层设备之上,它通过在设备末端预留一个区域以存储元数据做到这一点。
优点:
一旦 meta-data 创建之后,就和实际数据绑在了一起,在维护上会更简单方便,不用担心 meta-data 会因为某些操作而丢失。另外在硬盘损坏丢失数据的同时,meta-data 也跟着一起丢失,当更换硬盘之后,只需要执行重建 meta-data 的命令即可,丢失的数据会很容易的从其他节点同步过来。
缺点:
如果底层设备是单一的磁盘,没有做 raid,也不是 lvm 等,那么可能会对写入吞吐量产生负面影响。因为每一次写 io 都需要更新 meta-data 里面的信息,那么每次写 io 都会有两次,而且肯定会有磁头的较大寻道移动,因为 meta-data 都是记录在设备的最末端的,这样就会造成写 io 的性能降低。
external meta datameta-data存放在独立的,与存放数据的设备分开的设备之上。
优点:
...
关于 DRBD 脑裂问题的总结
本文在编写时基于官网 8.4 英文版本。由于英语水平和当时认知所限,翻译中难免有聱牙诘屈甚至误导别人之处。今天翻阅官网发现已经出现了基于 9.0 版本的中文文档,所以大家可以直接去浏览官方文档。
什么是DRBD脑裂脑裂(split brain)是指由于集群节点之间的所有网络链路的临时故障,以及可能由于集群管理软件的干预或人为错误,导致两个节点在断开连接时都切换到主节点(primary)角色的情况。这是一种潜在的有害状态,因为它意味着对数据的修改可能是在任一节点上进行的,而没有复制到对等节点。因此,在这种情况下,很可能已经创建了两个不同的数据集,这些数据集不能简单地合并。
怎么判定脑裂查看日志信息如果DRBD出现脑裂,会在 /var/log/message 出现一条日志:
Split-Brain detected but unresolved, dropping connection!
当发生split brain之后,如果查看连接状态,其中至少会有一个是StandAlone状态,另外一个可能也是StandAlone(如果是同时发现split brain状态),也有可能是 WFCon ...
关于在 Python 中 MySQL 的 WHERE 子句中执行 IN 操作(list,tuple)的问题
今天在写代码的时候,有一处查询语句需要执行 IN 操作,结果直接join操作会出错。
list_of_datas = [u'sde', u'sdf', u'sdb', u'sdc']sql = "SELECT DiskId,Name,Sg,PhyId,ExpanderId,EProduct FROM Disk WHERE Used='2' AND Name IN (%s)" % ','.join(list_of_datas)
执行结果:
SELECT DiskId, Name, Sg, PhyId, ExpanderId , EProductFROM DiskWHERE Used = '2' AND Name IN (sde, sdf, sdb, sdc)
很明显与预期的结果是不一样的。因为 IN 操作中的选取字段应该是带引号的字符串,而不是直接显示的字符串。也就是说我们期望的WHERE子句中是WHERE Used = ...
关于 Python 中的下划线用法的记录
Py 乙己孔乙己自己知道不能和架构师谈天,便只好向实习生说话。
有一回对我说道,“你写过Python么?”我略略点一点头。
他说,“写过代码,……我便考你一考。Python中的下划线,怎样用的?”
我想,搬砖一样的人,也配考我么?便回过脸去,不再理会。
孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些用法应该记着。将来做面试官的时候要用。”
我暗想我和面试官的等级还很远呢,而且我们面试官也从不将这些问题拿来考应聘者;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不就是命名变量,增加代码的可读性吗?”
孔乙己显出极高兴的样子,将两个指头的长指甲敲着键盘,点头说,“对呀对呀!……下划线有 x 种写法,你知道么?”
我愈不耐烦了,努着嘴走远。孔乙己刚用纸巾擦了擦键盘上的咖啡渍,想在IDE里写代码,见我毫不热心,便又叹一口气,显出极惋惜的样子。
正文
在交互式解释器中获取上一个语句执行的结果;
>>> 1+12>>> _2>>> _ * 510
用来在函数、模块、包、变量名中分隔单词,增加可读性;
var_foo_b ...
浅析 Python 中的延迟绑定问题
Python 使用中一个常见的困惑是 Python 在闭包(或在周围全局作用域(surrounding global scope))中绑定变量的方式。你所写的函数:def multi_expression(): return [lambda n: n*i for i in range(5)] if __name__ == '__main__': print([multi(10) for multi in multi_expression()])你所期望的是:一个包含 5 个函数返回值的列表,每个函数有它们自己的封闭变量 i 乘以它们的参数,得到:[0, 10, 20, 30, 40]而实际返回结果是:[40, 40, 40, 40, 40]创建了 5 个函数,它们全都是 4 乘以 n 。Python 的闭包是迟绑定 。这意味着闭包中用到的变量的值是在内部函数被调用时查询得到的。在这里, 每当调用任何函数返回时, i 的值是调用时在周围作用域( surrounding scope)中查询到的。而到那个时候,循环已经完成, i 的值最终变成 ...
Python 环境管理介绍
项目开发中可能需要用到不同版本的Python及相关的开发环境。比如Python2及Python3,或者有的项目需要 Django1.5 ,有的需要2.0,这个时候借助一些工具,往往可以达到事半功倍的效果。
个人搭配既然别人都说不够理想,那就暂时处于观望阶段吧。目前个人在用的 Python 虚拟环境和包管理组合:虚拟环境管理:venv包管理:pip
工作流python3 -m venv venvX # 使用 venv 创建名为 venvX(可自定义) 的虚拟环境source venvX/bin/activate # 激活虚拟环境venvX(上一步自定义虚拟环境名称)pip install -r requirements.txt # 使用pip安装依赖
值得关注的
PEP 582 – Python local packages directory | Python.org
pdm 0.2.4 live demo - asciinema
@更新
2020-1-8今天看到一篇文章 Pipenv 有什么问题,作者是Pipenv的核心开发者,也对Poetry做了一点介绍,同时在 ...
CentOS7 环境下配置 DRBD
本文主要记录DRBD的配置过程和功能验证。
本文使用64位CentOS,基本环境:
+-----------------------+ | +----------------------+| [ DRBD_A (Server#1) ] | 10.10.17.18 | 10.10.17.19 | [DRBD_B (Server#2) ] || node01 +--------------+---------------+ node02 || | | |+-----------------------+ +----------------------+DRBD 服务器A :ip:10.10.17.18,hostname:DRBD_ADRBD 服务器B :ip:10.10.1 ...