python
文章平均质量分 80
tiantao2012
这个作者很懒,什么都没留下…
展开
-
pyinstaller 打包
[root@localhost ~]# pip3 install pyinstallerWARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.Collecting pyinstaller Downloading https://files.pythonhosted.org/packages/9e/ed/fbdad7f5d8f..原创 2020-11-20 08:52:14 · 938 阅读 · 6 评论 -
通过evel将字符串作为函数执行函数
def replace(func_name,args,kwargs): print("enter",func_name,args,kwargs) evel("%s(%s,%s)" % (func_name,args,kwargs)) print("exit",func_name,args,kwargs) return原创 2020-03-30 09:11:18 · 1046 阅读 · 0 评论 -
python segmentation fault
1:使用faulthandler 调试在代码中加入import faulthandler;faulthander.enable()然后通过python3 -Xfaulthander xx.py 执行.打印挂掉是的堆栈Thread 0x0000ffffbb0d8b20 (most recent call first):File "/usr/local/lib/python3.7/s...原创 2020-03-27 11:51:14 · 3419 阅读 · 0 评论 -
ceph-deploy的calamari命令
ceph-deploy的calamari主要用于将config文件写到远程host的/etc/salt/minion.d/calamari.conf文件中并安装salt-minion和diamod 这两个包,并是能salt-minion 这个service 开机自动启动其源码路径为:E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\cal原创 2017-11-29 08:56:22 · 719 阅读 · 0 评论 -
oslo_i18n
在nova中经常看到下面的code if requested_topology and not instance_topology: if pci_requests.requests: return (_("Requested instance NUMA topology together with "原创 2017-11-16 14:05:15 · 1431 阅读 · 0 评论 -
ceph-deploy 中使用remoto
在ceph-deploy 中使用remoto 这个第三方库来访问远程host.这个库的源码的路径为https://github.com/alfredodeza/remoto例如在E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\hosts\common.py 中def ceph_version(conn): """ Log原创 2017-11-21 14:29:53 · 806 阅读 · 0 评论 -
oslo_utils 中的 timeutils
在E:\nova\nova\compute\manager.py 中有如下语句:from oslo_utils import timeutils在manager.py中使用timeutils的例子如下: with timeutils.StopWatch() as timer: self.network_api.deallocate_for_instanc原创 2017-12-15 10:20:18 · 1182 阅读 · 0 评论 -
ceph-deploy的admin 命令
ceph-deploy的admin命令指定了位置参数client用于将conf_data和keyring文件写到远端的host中其入口在E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\admin.py@priority(70)def make(parser): """ Push configuration and cl原创 2017-11-28 14:36:58 · 1809 阅读 · 0 评论 -
python的argparse 模块测试
argparse是python 内置的用于命令行选项与参数解析的模块使用一般分为三步,创建ArgumentParser()对象,调用add_argument() 方法添加参数,调用parse_args()解析添加的参数其中参数有分为可以参数和必选参数下面的例子包含了可选参数和必选参数,下面的--sum 属于可选参数import argparseparser=argparse.Arg...原创 2019-02-15 19:25:36 · 901 阅读 · 0 评论 -
python cmd 模块测试
#!/usr/bin/pythonfrom cmd import Cmdimport osimport sysclass cli(Cmd): prompt ='tao>' intro = "welcom test" def __init(self): Cmd.__init__(self) ...原创 2019-02-12 20:32:00 · 620 阅读 · 0 评论 -
python subprocess 模块测试
python在2.4版本后引入subprocess来管理子进程,简单来说就是可以调用外部程序,取代之前os.system,os.spawn等旧的的方法其中subprocess提供了多种方法来执行子进程,分别是subprocess.callsubprocess.check_allsubprocess.check_outputsubprocess.Popen>>> re...原创 2019-02-13 14:11:05 · 571 阅读 · 0 评论 -
ceph-deploy new
ceph-deploy new 命令用于开始部署新的集群,使用的例子如下:ceph-deploy new host-225 host-227 host-229执行成功后该目录下会增加三个文件[root@dn-5-221 ceph]# lltotal 12-rw-r--r-- 1 root root 276 Jun 26 22:01 ceph.conf-rw-r--r-- 1 roo原创 2017-11-14 14:31:58 · 2868 阅读 · 0 评论 -
importutils.import_class
在E:\nova\nova\service.py 中通过manager_class = importutils.import_class(self.manager_class_name) 得到一个class,然后就可以调用这个class例如:class Service(service.Service): """Service object for binaries running on原创 2017-11-14 14:31:01 · 2953 阅读 · 0 评论 -
ceph-deploy-mon的create函数
ceph-deploy的mon 命令用于管理mon守护进程其入口函数在E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\mon.py 中的make函数@priority(30)def make(parser): """ Ceph MON Daemon management """ parser.forma原创 2017-11-17 20:03:03 · 1032 阅读 · 0 评论 -
pdb debug python
如果是命令行debug的话,只要加上 -m pdb。可以看到(Pdb)就可以debug了。看到举例如下:/grub-master$ python -m pdb util/import_unicode.py unicode/UnicodeData.txt unicode/BidiMirroring.txt unicode/ArabicShaping.txt grub-core/unidata.c原创 2017-02-24 09:18:10 · 513 阅读 · 0 评论 -
set 去掉list中的重复元素
set 是一个无序不重复的合集。去除重复元素:>>> x = set("asdfghadd")>>> print xset(['a', 'd', 'g', 'f', 'h', 's'])交集>>> x = set("asdfghadd")>>> print xset(['a', 'd', 'g', 'f', 'h', 's'])>>> y = set("原创 2017-01-05 17:14:35 · 648 阅读 · 0 评论 -
python的简单强制类型转换
使用int/long/float/srt/repr/eval/list/tuple 等可以进行类型转换,测试如下:原创 2017-06-24 14:34:23 · 13699 阅读 · 0 评论 -
Python输出一个Fibonacci数列
这个程序很简单,唯一的只是点就是赋值例如啊a,b=b,a+b这里先把b赋值给a,返回再把a+b 赋值给b。运算的书信是从左向右执行原创 2017-06-24 14:44:01 · 4894 阅读 · 0 评论 -
通过range函数快速产生一个list
原创 2017-06-24 16:29:34 · 4207 阅读 · 0 评论 -
map和reduce
#! /usr/bin/pythonfrom functools import reducedef f(x): return 2*xl=range(1,9)print lmapresult=map(f,l)print mapresultdef f(x,y): return y*xreduceresult=reduce(f,l)pr原创 2017-06-27 16:19:11 · 515 阅读 · 0 评论 -
ceph-deploy的入口函数
ceph-deploy是ceph部署集群的工具。其源码在https://github.com/ceph/ceph-deployscript 目录下的ceph-deploy是ceph-deploy的入口函数#!/usr/bin/env pythonimport osimport platformimport sys"""ceph-deploy - admin tool for ceph原创 2017-11-09 14:37:29 · 808 阅读 · 0 评论 -
logging 模块
# -*- coding: utf8 -*-#将上utf8的话,可以用中文注释import logging #得到一个logging对象,且设置这个logging对象的log level是debug,总共有5种levellogger = logging.getLogger('mylogger')logger.setLevel(logging.DEBUG)#得到一个Handler 也原创 2017-11-01 16:28:34 · 505 阅读 · 0 评论 -
ceph-deploy的set_overrides函数
在E:\ceph-deploy-master\ceph-deploy-master\ceph_deploy\cli.py的_main函数中会调用set_overrides来将在配置文件中定义的命令 args = ceph_deploy.conf.cephdeploy.set_overrides(args) 其实现在E:\ceph-deploy-master\ceph-deploy-ma原创 2017-11-10 14:39:47 · 516 阅读 · 0 评论 -
nova 中读取proc/meminfo
在nova/libvirt/host.py 中的get_memory_mb_used会读取proc/meminfo。源码如下:ef get_memory_mb_used(self): """Get the used memory size(MB) of physical computer. :returns: the total usage of memory原创 2017-11-02 09:45:15 · 819 阅读 · 0 评论 -
join
#! /usr/bin/pythonprint "#".join(("a","b","c"))结果:a#b#c就是将#插入到每个元素中间.原创 2017-01-05 17:08:59 · 418 阅读 · 0 评论