variable with underscore

@nmichaels's answer:

- _single_leading_underscore: weak "internal use" indicator.  E.g. "from M
  import *" does not import objects whose name starts with an underscore.

- single_trailing_underscore_: used by convention to avoid conflicts with
  Python keyword, e.g.

  Tkinter.Toplevel(master, class_='ClassName')

- __double_leading_underscore: when naming a class attribute, invokes name
  mangling (inside class FooBar, __boo becomes _FooBar__boo; see below).

- __double_leading_and_trailing_underscore__: "magic" objects or
  attributes that live in user-controlled namespaces.  E.g. __init__,
  __import__ or __file__.  Never invent such names; only use them
  as documented.

property method

计算目录的md5

也就是遍历目录, 计算所有文件内容合并后的md5值。

注意: 保证遍历目录的路径是一致的, 否则跨平台遍历方式不一致导致md5不同。

见Simiki中的实现: Add directory md5 hash function, 另外, 这个可能还需要考虑内存溢出的情况? TODO

另外可参考:

pip install from git repo

$ pip install -e git+https://github.com/username/projname.git#egg=projname

参考:

virtualenv对系统级包的策略

最近发现使用virtualenv进入一个隔离环境时, 每次cd切换目录都会报错, 原因是autojump(py写的)模块找不到。

排查后发现是系统级的python包目录不在sys.path中。

看了virtualenv的changelog发现这个是在1.7版本做的变更:

具体可以看看virtualenv 的 changelog

我之前应该很长一阵子都处于1.7之前的版本, 最近才作了下升级.

list和dict释放空间

list:

dict: