山东建设厅官方网站二建报名小学学校网站建设计划
一.什么是模块
在Python中,一个.py文件就称之为一个模块(Module)。
 模块好处?:
- 方便重用代码,写完一个通用的模块,可以在很多地方直接拿来用
 - 相同名字的函数和变量完全可以分别存在不同的模块中
 
二.使用模块
使用
Python本身就内置了很多非常有用的模块,只要安装完毕,这些模块就可以立刻使用。
-  
使用模块的第一步,就是通过
import关键字导入模块:#1导入sys模块 import sysdef test():args = sys.argv #2使用该模块的变量if len(args)==1:print('Hello, world!')elif len(args)==2:print('Hello, %s!' % args[1])else:print('Too many arguments!')#Python解释器把一个特殊变量__name__置为__main__ if __name__=='__main__':test()- 导入sys模块后,我们就有了
变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。 sys模块有一个argv变量,用list存储了命令行的所有参数。- argv至少有一个元素,因为第一个参数永远是该.py文件的名称,例如:
 
运行python3 hello.py获得的sys.argv就是['hello.py']; 运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael']。
 - 导入sys模块后,我们就有了
 
import 语句
想使用其他模块,只需在另一个模块里执行 import 语句,语法如下:
import module1[, module2[,... moduleN]
 
实例
#support.py 文件代码
def print_func( par ):print ("Hello : ", par)return
 
test.py 引入 support 模块:
# 导入模块
import support# 现在可以调用模块里包含的函数了
support.print_func("Runoob")
 
from … import 语句
Python 的 from 语句让你从模块中导入一个指定的部分到当前模块中,语法如下:
from modname import name1[, name2[, ... nameN]]
 
示例:要导入模块 fibo 的 fib 函数,使用如下语句:
from fibo import fib, fib2
fib(500)
#1 1 2 3 5 8 13 21 34 55 89 144 233 377
 
- 这样不会把整个fibo模块导入到当前的模块中,它只会将fibo里的fib函数引入进来。
 
from … import * 语句
把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:
from modname import *
 
包
包是一种管理 Python 模块命名空间的形式,采用". + 模块名称"。
 - 比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
1.用户可以每次只导入一个包里面的特定模块,比如:
import sound.effects.echo
#这将会导入子模块:sound.effects.echo。 他必须使用全名去访问:
sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)2.还有一种导入子模块的方法是:
from sound.effects import echo
#这同样会导入子模块: echo,并且他不需要那些冗长的前缀,所以他可以这样使用:
echo.echofilter(input, output, delay=0.7, atten=4)3.还有一种变化就是直接导入一个函数或者变量:
from sound.effects.echo import echofilter
#同样的,这种方法会导入子模块: echo,并且可以直接使用他的 echofilter() 函数:
echofilter(input, output, delay=0.7, atten=4)
 
-  
注意当使用
from package import item这种形式的时候,对应的 item 既可以是包里面的子模块(子包),或者包里面定义的其他名称,比如函数,类或者变量。-  
import 语法会首先把
item 当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,抛出一个:exc:ImportError 异常。 -  
反之,如果使用形如
import item.subitem.subsubitem这种导入形式,除了最后一项,都必须是,而最后一项则可以是模块或者是包,但是不可以是类,函数或者变量的名字。 
 -  
 
作用域
一个模块中,但有的函数和变量允许给别人使用,有的函数和变量希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。
-  
正常的函数和变量名是
公开的(public),可以被直接引用 -  
类似
__xxx__这样的是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊变量, -  
类似
_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;- 之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为
Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。 
 - 之所以我们说,private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为
 
请看例子:
def _private_1(name):return 'Hello, %s' % namedef _private_2(name):return 'Hi, %s' % namedef greeting(name):if len(name) > 3:return _private_1(name)else:return _private_2(name)
 
- 我们在模块里
公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法,即:- 外部不需要引用的函数全部定义成
private,只有外部需要引用的函数才定义为public。 
 - 外部不需要引用的函数全部定义成
 
三.安装第三方模块
pip 是 Python 包管理工具,该工具提供了对 Python 包的查找、下载、安装、卸载的功能。
-  
软件包也可以在 https://pypi.org/ 中找到。
- 目前最新的 Python 版本已经预装了 pip。
 
 
安装pip
-  
在命令提示符窗口下尝试运行
pip,如果Windows提示未找到命令,可以重新运行安装程序添加pip。 -  
使用以下方法来安装:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 下载安装脚本 sudo python get-pip.py # 运行安装脚本注意:用哪个版本的 Python 运行安装脚本,pip 就被关联到哪个版本,如果是 Python3 则执行以下命令:sudo python3 get-pip.py # 运行安装脚本。 一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。 
pip常用命令
1.查看是否已经安装 pip 可以使用以下命令:pip --version2.下载安装包使用以下命令:pip install some-package-name
2.1.例如我们安装 numpy 包:pip install numpy
2.2.安装包指定版本pip install SomePackage              # 最新版本pip install SomePackage==1.0.4       # 指定版本pip install 'SomePackage>=1.0.4'     # 最小版本3.我们也可以轻易地通过以下的命令来移除软件包:pip uninstall some-package-name
3,1,例如我们移除 numpy 包:pip uninstall numpy4.如果要查看我们已经安装的软件包,可以使用以下命令:pip list5.升级 pippip install -U pip
如果这个升级命令出现问题 ,可以使用以下命令:sudo easy_install --upgrade pip6.升级包
pip install --upgrade SomePackage
 
- 详见Python pip 安装与使用
 
