Python Pickup

语言学习

编程规范:官方建议:PEP8

类中的私有变量:__name,两个连续的下划线加变量名表示私有变量,python解释器会对这样的变量名做修改,直接访问会出错。

有些时候,你会看到以一个下划线开头的实例变量名,比如_name,这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。

包管理

pip使用requirements.txt文件管理包依赖。

示例内容:

# This is an implicit value, here for clarity
--index https://pypi.python.org/simple/

MyPackage==1.0
requests==1.2.0
bcrypt==1.0.2

通过pip install -r requirements.txt安装依赖

virturalenv

可以为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各自独立的环境中。

安装virtualenv:sudo pip install virtualenv

进入项目文件夹(my_project),创建独立的python环境:

virtualenv --distribute my_project

--distribute 选项会自动在新的虚拟环境中安装 pip,这样就不需要手动安装了。

激活virtualenv:source bin/activate

离开virtualenv:deactivate

通过pip和virtualenv进行依赖管理

pip 结合 virtualenv 可以为你的项目提供基本的依赖管理。

你可以通过 pip freeze 命令来查看当前已安装的包版本。下面列出的是我写着个博客所用到的包的版本:

$ pip freeze -l

Jinja22.6

PyYAML3.10

Pygments1.4

distribute0.6.19

markdown2==1.0.1.19
注意 -l 选项,它告诉 pip 只导出当前活动虚拟空间中安装的包,排除那些全局空间安装的包。

你可以把结果保存到文件里,然后将它添加到你的版本控制系统里。

$ pip freeze -l > requirements.txt 同时 pip 也能从一个包含 pip freeze 命令的文件中安装包。

$ pip install -r requirements.txt

关于setup.py

下面是一个示例的setup.py

from setuptools import setup

setup(  
    name="MyLibrary",
    version="1.0",
    install_requires=[
        "requests",
        "bcrypt",
    ],
    # ...
)

requirements.txt的内容简化为:

--index https://pypi.python.org/simple/

-e .

执行pip install -r requirements.txt可以自动解析setup.py中的依赖项进行安装,便于维护requirements文件。

常用模块

  • Excel处理:xlrd
  • docopt
  • requests
  • sh
  • purl
  • path.py
  • Peewee
  • Pony ORM
  • Spyne
  • schema
  • fn.py
  • when.py
  • clize