一. Modules的路径
1.modules的搜索路径
sys.path 获取当前脚本的环境变量列表site-packages中的.pth文件代表路径文件通过setuptools(pkg_resourses)工具安装后,在site-packages下生成对应的.egg文件,在文件中查找entry_points.txt中的main函数
- 别名:
导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块。比如Python标准库一般会提供StringIO和cStringIO两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:
try:
import cStringIO as StringIO
except ImportError: #导入失败会捕获到ImportError
import StringIO
这样就可以优先导入cStringIO。如果有些平台不提供cStringIO,还可以降级使用StringIO。导入cStringIO时,用import ... as ...指定了别名StringIO,因此,后续代码引用StringIO即可正常工作
二. Modules的导入
- modules必须包含init.py文件,导入模块可以使用 import 或者 from ..... import ...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
' a test module '
__author__ = 'Michael Liao'
import sys
def test():
args = sys.argv
if len(args)==1:
print 'Hello, world!'
elif len(args)==2:
print 'Hello, %s!' % args[1]
else:
print 'Too many arguments!'
if __name__=='__main__':
test()
__init__.py
在modules的init文件import方法,相当于全局变量,会存在在整个modules中,注意:在init中使用from A import f1, 相当于import了A模块。
三. 安装modules
pip install modules_name
下载模块的路径 https://pypi.python.org/simple