修复因为 Python 升级导致的失效 virtualenv 环境
(本篇日志为How to fix your Python virtualenv after a Homebrew Python upgrade的翻译文档)
more ...(本篇日志为How to fix your Python virtualenv after a Homebrew Python upgrade的翻译文档)
more ...话说今天青蛙遇到了一个bug,在某个Exception里抛出了TypeError Exception, 青蛙仔细查了半天,才想到Exception有一个内置属性args,刚好跟这个Exception 定义中的args重名。
首先看下这个Exception的定义:
In [4]: class E(Exception):
def __init__(self, a, b, c):
Exception.__init__(self)
self.a = a
self.args = b
self.c = c
def __str__(self):
return "a = %r, b = %r, c = %r" % (self.a, self.args, self.c)
....:
当这个Exception被触发时,又引发了一个TypeError:
In …
其实青蛙不是很想在blog里面说编程方面的东西,毕竟青蛙自己只 是个半调子,怕言多有失。不过这次遇到了一个很常见又很有趣的 问题,记下一笔,权当取乐。
话说上周一个同事在patch里面使用了一种比较hacker的方法[1]:
使用定义list成员的方式把函数的局部变量传递给sub-function并 在sub-function修改其内容。
这种做法被其他同事猛烈的抨击,实际上在python2.x中,因为语言 实现的问题,嵌套的子函数是没法直接写它的上层函数的变量的。
这个问题之前在Team内部没有引起足够的重视,大家习以为常的在 子函数里直接给一个父函数的变量赋值,结果都是错的,这个赋值 操作会直接引发异常。
有人总结了一下python嵌套子函数访问变量的行为[2]:
In Python 2.x, it is not possible to modify a non-local variable;
you have either read-only access to a global or …
自从Twitter强制把所有链接都转换为t.co之后,在手机上访问这些地址就成了大问题,开VPN慢,绕了一圈发现是国内地址,不开干脆访问不能。于是青蛙一直酝酿在Twip那里把短链接扩展。
今天有时间,研究了一下,本来打算自己写的,但是本着不重复造轮子的态度,写之前google了一下,这不,这位同学已经写好了: http://hjin.me/code/727/ , 全部修改的代码贴到了这里: http://pastebin.com/f4Gw0DND 青蛙拿过来直接扔进twip,问题解决。
青蛙在这放出一个基于twip r204版本的patch吧,另外还有一个小修改的补丁,修复一些情况下的警告信息。
0001-twip-enable-expand-tco-link.patch
0002-twip-fix-some-warning-msg-in-expand-tco-link-patch.patch
这个修改只能解决t.co的问题,没办法解决其他被关照到的短网址服务, 所以青蛙仍然酝酿着什么时候搞一个把所有短网址都展开的补丁。
不过青蛙看php代码实在是头疼,只好下次有时间再硬着头皮读代码改吧。
more ...下面是Markdown语法的简要列表,便于以后查阅。 以下内容主要从 牧码志 整理,感谢leninlee的辛勤劳动。
链接的添加,共有三种形式,Markdown支持相对链接。
<链接>
:这种形式只是简单的标出链接;
[文字](链接 "标题")
:给文字添加链接,其中标题是可选的;
[文字][标记]
:给文字添加链接,链接在下面的一个以[标记]
开头的新行(一般是文章末尾)给出。 或者直接以[文字][]
这种形式编写,在下面的新行中使用[文字]
:链接的形式声明链接。
图片的添加:跟链接比起来,图片只是多了在前面多了一个叹号!
。
标题格式:Markdown提供了2种方式。
第一种是在标题前面加上1~6个
#
表示<h1>
~<h6>
。
第二种是在标题下面另起一行,输入四个以上的等号=
来表示<h1>
, 输入四个以上的减号-
来表示<h2>
。
粗体和斜体:用星号"*"或者下划线 …