
Python
文章平均质量分 84
清欢守护者
人间有味是清欢
展开
-
记录一个 Python sys.path 相关BUG
文章目录1. BUG 描述2. 问题解决2.1 治标不治本的方法2.2 治本的方法2.3 原理探究1. BUG 描述环境一Ubuntu 16.04 中有多个 Python 版本,包括系统默认(即 sudo apt install python3)Python3.5 以及一个通过源码安装的 Python 3.6没有使用 anaconda 管理不同 Python 版本。环境二:有多个版本的Python,通过 anaconda 管理。BUG细节在指定Python环境(环境一的原创 2021-07-06 14:56:46 · 1101 阅读 · 0 评论 -
Python基础(12) 使用ElementTree解析XML
文章目录0. 前言1. 解析操作1.1. 读取xml文件1.2. 获取节点以及相关信息1.3. 获取属性与文本2. 修改文件2.1. 基本流程2.2. 修改ElementTree的方式3. 举例3.1. 解析实例3.2. 修改实例3.3. 构建新的xml文件0. 前言Python 的 xml 操作方式有好几种,我只关心最普通、最简单的,也就是 ElementTree 形式。参考资料:Python 官方文档本文只是简单实用,有及格方面不涉及Pull API for non-blocking pa原创 2020-12-05 14:27:31 · 1699 阅读 · 0 评论 -
Python基础(11) 性能测试工具 cProfile
文章目录0. 前言1. cProfile 的使用1.1. API 介绍1.2. 单线程使用1.2. 多线程使用2. 结果解释以及可视化2.1. 结果详解2.2. 可视化工具 - snakeviz0. 前言基本需求:统计程序每一部分的运行时间。其实,性能测试应该还包括内存占用统计等,但暂时并不关心。所谓“程序每一部分”有很多中理解,比如按“函数”统计,或按“每行代码”统计。cProfile 就是用按“函数”统计运行时间。cProfile的特点会统计每个函数的总运行时间(包括子函数)、除原创 2020-11-02 12:42:07 · 7388 阅读 · 0 评论 -
Python进阶(10) pytest
文章目录0. 前言1. 命令与配置1.1. pytest 的基本使用1.2. 配置文件2. 代码编写2.1. 推荐的单元测试源码格式2.2. 文件/类/方法命名规则2.3. assert 相关2.4. pytest fixtures0. 前言简介:pytest是Python的测试框架,是第三方提供的,需要额外安装包。安装方法:pip install -U pytest,之后就可以通过 pytest --version 来检查是否安装。官方资料:官方文档1. 命令与配置1.1. pytes原创 2020-09-19 14:40:58 · 383 阅读 · 0 评论 -
Python基础(11) logging
文章目录0. 前言1. 组件介绍1.1. Loggers1.2. Handlers1.3. Filters1.4. Formatters2. 配置方法2.1. 使用Python创建loggers, handlers, filters2.2. 创建一个配置文件2.3. 创建一个字典3. 查漏补缺3.1. 配置缺失3.2. 使用Module-Level方法0. 前言Python 3.6 logging官方推荐的教程官方实例:Logging Cookbook组件:Loggers:程序直接调用,产原创 2020-08-18 00:25:24 · 183 阅读 · 0 评论 -
PyTorch Distributed Tutorials(1) Overview
文章目录0. 前言1. 概述2. 数据并行3. RPC训练方式0. 前言官方链接本文相当于一个目录,总结了分布式相关的tutorials有哪些。主要就是介绍 torch.distributed 包相关内容。1. 概述在 v1.6.0 中,torch.distributed 包主要可以分为三个方面。Distributed Data-Parallel Training(DDP),参考文档数据并行训练。适用于 single-program multiple-data 训练。基本实现思路原创 2020-07-30 00:49:05 · 435 阅读 · 0 评论 -
PyTorch Tutorials 摘要(4) Visualizing models, data, and training with tensorboard
文章目录0. 前言1. 最简单的使用2. 查看模型结构3. 查看参数、变量的投影4. 记录训练过程0. 前言官方链接本文目标:介绍PyTorch中Tensorboard的基本使用本文主要内容Tensorboard的基本使用(summary writer的创建,添加image)Tensorboard展示模型结构Tensorboard展示参数分布(high dimension用low dimension展示)Tensorboard训练过程中的使用(展示loss与image预测结果)1原创 2020-07-29 23:51:08 · 288 阅读 · 0 评论 -
Python基础(10) 序列(tuple/list)、字典(dict)、集合(set)
文章目录1. 序列1.1. 序列1.2. 列表1.3. 元组2. 字典2.1. 普通 dict 类的使用1. 序列包括list/tuple等。有一些操作是所有序列都共有的。1.1. 序列个人理解:本质就是数组,可以通过索引来获取(部分类型可以修改)元素。索引操作:数组编号,可以为负数,如-1就是最后一个元素。分片:通过索引来访问一定范围内的元素,形如[start:end:step]索引范围包括start,不包括end。步长不能是0,但可以是负数。如果start >= e原创 2020-05-23 15:27:41 · 353 阅读 · 0 评论 -
Python进阶(9) 定时运行程序 APScheduler
文章目录1. 前言1. Scheduler1.1. 基本概念1.2. 基本API1.3. 实例2. trigger2.1. 基本概念2.2. apscheduler.triggers.cron.CronTrigger2.3. 其他 trigger2.5. 举例:add_job 中trigger的应用3. executors & job store3.1. Executors3.2. Job Stores3.3. 举例1. 前言官网,源码,官方examples安装pip install ap原创 2020-05-23 01:13:51 · 4769 阅读 · 0 评论 -
Python基础(9) 多进程
文章目录0. 前言1. ProcessPoolExecutor2. multiprocessing2.1. Process2.2. Pool0. 前言Python中的多线程与多进程:Python中由于全局解释器(Global Interpreter Lock, GIL)的关系,多线程程序默认只能使用CPU的一个核。Python多线程适用于IO密集型任务。Python多进程则能够跳过GIL的限制,使用多个CPU核,适用于计算密集型任务。Python中的多进程主要通过 ProcessPoo原创 2020-05-22 22:30:18 · 438 阅读 · 0 评论 -
Python基础(8) 多线程
0. 前言目标:实现多线程并发执行程序。特点:由全局解释器锁于(Global Interpreter Lock,GIL)的存在,多线程执行程序只能占用一个CPU核。换句话说,Python多线程不适用于CPU密集型任务,但适用于IO密集型任务。当使用CPU密集型任务时,应该使用Python多进程。相关包threading 模块concurrent 模块1. threading 模块主要是对单个线程的操作,即以 threading.Thread 为基础。1.1. Th原创 2020-05-22 17:34:23 · 350 阅读 · 0 评论 -
Python基础(7) argparse
文章目录@[toc]0. 前言1. 构建ArgumentParser实例2. add_argument方法3. 实例0. 前言官方文档官方教程:Argparse Tutorial作用:Python的内置命令行工具。使用流程:构建argparse.ArgumentParser实例。通过调用上述实例的add_argument方法,添加命令行参数。通过上述实例的parse_args方法解析参数。1. 构建ArgumentParser实例学习构建实例的本质,就是学习其构造器中每个参原创 2020-05-22 10:23:08 · 285 阅读 · 0 评论 -
Python进阶(8) Redis
文章目录@[toc]0. 前言1. 创建/释放连接1.1. 创建1.2. 释放2. 基本使用2.1. 基本类型操作2.2. 其他操作2.3. 注意事项3. 实例0. 前言安装库:pip install redisGithub项目地址Docs1. 创建/释放连接1.1. 创建主要就是创建 redis.Redis 对象,相关文档可以参考这里。创建单个连接:r = redis.Redis(host='localhost', port=6379, db=0, password='pas原创 2020-05-22 09:48:14 · 204 阅读 · 0 评论 -
Python进阶(6) Hive/HBase/HDFS
文章目录0. 前言1. Hive1.1. 基本信息1.2. 基本使用2. HBase2.1. 基本信息2.2. 基本使用3. HDFS3.1. 基本信息3.1. 基本使用0. 前言1. Hive1.1. 基本信息参考资料:dropbox/PyHive使用的是 hiveserver2 服务,默认端口是10000。Linux下安装:conda install thrift sasl pyhivePS:直接用pip好像不太行,不能安装sasl。Windows下安装:安装Visual原创 2020-05-22 08:56:24 · 710 阅读 · 0 评论 -
Python基础(2) 日期
文章目录1. 日期类2. 获取日期类对象3. 时间对象与字符串的转换4. datetime中的对象5. 比较5. 加减1. 日期类datetime模块包括以下对象:datedatetimetimetimedeltatzinfo2. 获取日期类对象from datetime import *d1 = datetime.now()d2 = datetime(2011, 12, 3)d3 = datetime(2017, 8, 12, 6, 12, 31, 555) # 其中原创 2020-05-22 08:55:14 · 224 阅读 · 0 评论 -
Python进阶(5) WebSocket
文章目录0. 前言1. Server2. Cleint0. 前言目标:建立长连接,异步发送/接收信息。注意,只关注长连接。1. Server参考:Github: Pithikos/python-websocket-server安装:pip install git+https://github.com/Pithikos/python-websocket-serverpip install websocket-server常用方法:MethodDescripti原创 2020-05-22 08:53:59 · 2018 阅读 · 1 评论 -
Python进阶(4) Jupyter Notebook
文章目录0. 前言1. 远程访问1.1. 方法一1.2. 方法二2. 小技巧2.1. 重载模块2.2. 执行命令行命令2.3. 设置主题2.4. 添加ikernel2.5. 计时3. 碰到的问题3.1. 创建文件时 Permission Denied3.2. Win10中偶尔出现的Matplotlib问题4. 进阶扩展包0. 前言安装:pip install jupyter1. 远程访问1.1. 方法一第一步:生成配置文件 jupyter notebook --generate-config原创 2020-05-22 08:52:08 · 405 阅读 · 0 评论 -
Python进阶(3) Flask & Swagger
文章目录0. 前言1. 基本功能1.1. 最简单的实例1.2. 设置请求方法1.3. 设置参数2. 注解介绍2.1. 基本对象2.2. api.model 的使用2.2. 整个swagger页面的注解2.3. 每一类接口的注解2.4. 每个接口的注解2.5. url参数注解3. 举例0. 前言之前是Java后端工程师,写过不少代码。现在一方面好久没写Java了,一方面也想省力,所以就用了Flask。参考资料:Flask中文文档Flask-RESTPlus 文档安装:安装flask:p原创 2020-05-22 08:49:57 · 10329 阅读 · 5 评论 -
Python进阶(2) mysql
文章目录0. 前言1. SQLAlchemy 的基本使用1.1. 创建engine1.2. 创建表映射 & 新建表1.3. 建立数据库记录实例1.4. 创建会话实例2. 小功能2.1. 自动设置 DateTime 相关字段3. 实例0. 前言安装MySQL驱动:pip install pymysql安装ORM框架:pip install sqlalchemySQLAlchemy资料:文档Tutorial1. SQLAlchemy 的基本使用1.1. 创建engine主原创 2020-05-22 08:45:49 · 201 阅读 · 0 评论 -
Python基础(6) 函数&装饰器
文章目录0. 前言1. 函数1.1. 基本概念1.2. lambda 表达式1.3. * 和 **1.4. 变量作用域2. 装饰器2.1. 基本概念2.2. 基本形式举例2.2.1 形式一:最简单的装饰器,不实现任何功能。2.2.2. 形式二:装饰器的基本形式。2.2.3. 形式三:参数化装饰器。2.2.4. 形式四:多种形式装饰器。2.2.5. 形式五:类中定义装饰器。2.3. 装饰器执行时间2.5. 无法调试(无法获取元数据)0. 前言参考资料:《流畅的Python》第五、六、七章《Pyt原创 2020-05-22 08:44:30 · 221 阅读 · 0 评论 -
Python进阶(1) cv2
文章目录0. 前言1. 图像操作1.1. 读写1.2. 常用操作2 . 视频操作2.1. 读视频2.2. 写视频3. 展示窗口3.1. 流水账3.2. 应用附录关于如何查询Opencv-Python API0. 前言包含APIcv2.imreadcv2.imwritecv2.resizecv2.cvtColorcv2.VideoCapturecv2.VideoWritercv2.namedWindowcv2.imshowcv2.waitKeycv2.destroyWindow原创 2020-05-21 23:06:51 · 780 阅读 · 0 评论 -
Python手册(5) 解析式、生成器、迭代器
文章目录0. 前言1. 解析式2. 迭代器2.1. 迭代器模式2.2. 可迭代对象与迭代器2.3. iter函数2.4. for-in 循环在 Python 中的工作原理3. 生成器3.1. 基本生成器3.2. 生成器表达式3.3. 标准库中的生成函数4. Examples4.1. 解析器与生成器表达式4.2. 迭代器4.3. 生成器0. 前言参考资料:《Python Cookbook》第四章《流畅的Python》第十四章《深入理解Python特性》第六章迭代器和生成器属于同一概念,生成原创 2020-05-21 10:31:51 · 383 阅读 · 0 评论 -
Python手册(4) 断言 assert
文章目录0. 前言1. 定义2. 使用场景3. 常见陷阱3.1. 不能使用断言来验证数据3.2. 永不失败的断言3.3. 其他注意事项0. 前言参考资料:《深入理解Python特性》2.1节。Python官方文档:7.3. The assert statement1. 定义根据Python官方文档,Python解释器会将断言"assert expression1, expression2转换为:if __debug__: if not expression1:原创 2020-05-21 10:24:07 · 213 阅读 · 0 评论 -
Python手册(3) 异常处理
文章目录0. 前言1. 内建异常类型2. 新建异常类型3. 捕获异常3.1. 基本使用3.2. 异常类的基类与派生类0. 前言参考资料:Python官方文档1. 内建异常类型Python文档:内置异常# 内建异常类型# Exception# AttributeError# IOError# IndexError# KeyError# ValueError# NameError# SyntaxError# ZeroDivisionError2. 新建异常类型c原创 2020-05-21 10:22:02 · 221 阅读 · 0 评论 -
Python进阶(7) Pandas
文章目录0. 前言1. Series1.1. 基本概念1.2. 构造对象Series1.3. 其他2. DataFrame2.1. 基本概念2.2. 构建对象2.3. 行2.4. 列2.5. 其他操作3. 其他3.1. 读取文件3.2. 写文件0. 前言参考《利用Python进行数据分析》第五章相关源码pandas中数据结构组要分为Series和DataFrame。1. Series1.1. 基本概念由一组数据(各种Numpy数据类型)以及一组与之相关的数据标签(即索引)组成。1.2.原创 2020-05-21 10:18:11 · 354 阅读 · 0 评论 -
Python手册(1) Anaconda & pip
文章目录0. 资料1. Anaconda1.1. 安装1.2. 环境相关1.3. package相关1.4. 修改envs和pkgs的默认路径1.5. 设置启动/结束脚本1.6. 碰到的问题2. pip2.1. 镜像2.2. 其他0. 资料Anaconda官网Anaconda清华镜像1. Anaconda1.1. 安装建议使用清华镜像下载,安装完成后执行。conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/a原创 2020-05-21 10:12:08 · 331 阅读 · 1 评论