Python 库打包分发(setup.py 编写)简易指南

Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python 包。要想向 pypi 包仓库提交自己开发的包,首先要将自己的代码打包,才能上传分发。 distutils 简介 distutils 是标准库中负责建立 Python 第三方库的安装器,使用它能够进行 Python 模块的安装和发布。distutils 对于简单的分发很有用,但功能缺少。大部分Python用户会使用更先进的setuptools模块 setuptools 简介 setuptools 是 distutils 增强版,不包括在标准库中。其扩展了很多功能,能够帮助开发者更好的创...

阅读更多

Git 重置(reset)操作简介

要理解 git reset 需要先了解其在版本管理中用到的三个重要概念,通常被称为三棵“树”,“树” 的实际意思是 “文件的集合”,而不是指特定的数据结构。这三棵树即: 树 含义 HEAD 上一次提交的快照,下一次提交的父结点 Index 预期的下一次提交的快照 Working Directory 工作目录 HEAD 是当前分支引用的指针,它总是指向该分支上的最后一次提交。 这表示 HEAD 将是下一次提交的父结点。 通常,理解 HEAD 的最简方式,就是将它看做 你的上一次提交 的快照。 Index 即索引,通常也被称之为暂存区,是 预期的下一次提交。 当运...

阅读更多

Python 模块简介 -- warnings

Python 通过调用 warnings 模块中定义的 warn() 函数来发出警告。警告消息通常用于提示用户一些错误或者过时的用法,当这些情况发生时我们不希望抛出异常或者直接退出程序。警告消息通常写入 sys.stderr,对警告的处理方式可以灵活的更改,例如忽略或者转变为为异常。警告的处理可以根据警告类别,警告消息的文本和发出警告消息的源位置而变化。对相同源位置的特定警告的重复通常被抑制。 警告控制分为两个阶段:首先,警告被触发时,确定是否应该发出消息;接下来,如果要发出消息,则使用用户可设置的钩子来格式化和打印消息。 警告过滤器可以用来控制是否发出警告消息,警告过滤器是一些匹配...

阅读更多

IPython 基本使用

ipython 是一个 python 的交互式 shell,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数,比默认的 python shell 好用得多。IPython 已经成为用 Python 做教学、计算、科研的一个重要工具 2001 年, Fernando Pérez 为了得到一个更为高效的交互式 Python 解释器而启动了一个业余项目, 于是 IPython 项目诞生了。之后,它逐渐被公认为现代科学计算中最重要的 Python 工具之一。IPython 本身并没有提供任何的计算或数据分析功能, 其设计目的是在交互式计算和软件开发这两...

阅读更多

Python new 类方法和 init 实例方法以及单例模式的简单讨论

“Python 中的类都是单例模式?” 一天,一同事问我这样一个问题。这是一个奇怪的问题,可能你也这么认为。这里先不做解释,我们先来看看 __new__ 和 __init__ 方法。 new 与 init __new__ 方法属于新式类,即属于 object 类。它是一个静态方法,但是其第一个参数必须是一个类(cls),这有点像一个 classmethod,其实将其看成是一个类方法也可以。该特殊方法被调用时,会创建类(cls)的一个新实例并返回,实例被创建后解释器会将该实例以及其它的参数传递给该实例的初始化函数 __init__,以对实例进行初始化。 所以,__new__ 方法是一...

阅读更多

Git 标签(tag)简介与使用

Git 可以对某一时间点上的版本打上标签。在做版本发布的时候经常这么做。Git 使用的标签有两种类型: 轻量级的(lightweight) 和 含附注的(annotated)。 轻量级标签:就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。 含附注标签:实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。 总结的说就是轻量级标签是一个引用,附注标签是一个独立的对象。一般建议使用附注标签,以保留相关详细信息。 常用命令: 列出所有...

阅读更多

愿你出走半生,归来仍是少年

我在车站等了五个小时的车写下此文,原因是我买错了车票。其实算不上是买错了,只是车票上的车站不是我想要买的那个车站。车票是提前一个月定订的,如果我注意一下,就不至于会去错车站,以至于来不及到另一个车站去乘车。手机在路途中坏了,要不然以我如此谨慎的脾性,应该能发现问题。 你不得不承认,即使,再小心翼翼,也会犯错! 有时候,因为一些错误,我们浪费了宝贵的时间、精力和钱财。每次犯错,我都试图原谅自己,以让自己好受些,只是在心里告诉自己下次不要再犯。可是,即使你能避免不犯同样的错误,但也避免不了会犯其他的错误。 我竟然过了几天没有手机的日子。不做低头族,自己就好像是一个异类一样。在人群中,好像...

阅读更多

愿你回想起草原,内心依然辽阔

你觉得要发生的事,有时候是必然会发生的,可还是侥幸的希望一切都能好。曾经我总会对一个人说,不要选择逃避,勇敢一些,去面对。可是,同样的话,能安慰别人,却安慰不了自己。是的,有时候,我们都在逃避! 还是没有忍住,要去知道一些事的结果,只是已不明了心里是何种心态。不管怎样,眼角的泪水都没有藏住,没能阻止它流出来。 我开始读龙应台的“人生三书”。有一个人曾经总是跟我提起龙应台,提到她的教育理念,我还以为她是一个了不起的教育家。然而,她只是用生风的笔触记录了她的人生。从初为人母,怎样让孩子快乐的成长,怎样教孩子去认识这个世界乃至宇宙。一定要告诉你的孩子,慢慢来,一定要告诉他,灰姑娘的故事...

阅读更多