Python基础-模块和包:
一、为什么需要模块和包:
随着项目越来越大,所有代码都放在一个文件中,已经不能满足我们的需求了。这时候就要将代码进行整理了,模块和包的出现就是为了解决这个问题的。模块可以将一些相关联的代码组合在一个py文件中,包可以将一些相关联的模块组合在一个文件夹中。
二、将一个模块导入到当前文件中的几种方式:
import:导入某个模块。以后要使用模块中的函数或者方法或者变量,则需要使用模块名.xxx的形式调用。from xxx import xxx:从某个模块中导入某个对象或者方法等。也可以一次性的从模块中导入所有的对象。使用from xxx import *。from a import b as c:从a中导入b并命名为c。以后在代码中引用b,通过c来引用。
三、包:
包其实本质上就是一个文件夹,将一些相关联的模块组合在一起。但是如果一个文件夹要让Python识别为一个包,则必须在这个文件夹中创建一个叫做__init__.py的文件。一个文件夹中只有拥有了__init__.py这个文件,才能被视为一个包。
在同一个包中的模块如果要互相导入,则只能通过相对的方式进行导入,即:from . import xxx。
四、__all__:
- 如果是在模块中写了这个变量,将控制
from 模块名字 import *的行为。 - 如果在
__init__.py文件中有这个变量,那么它将控制着from 包 import *的行为。
五、模块的搜索路径:
- 在当前目录下搜索模块。
- 在环境变量
PYTHONPATH中搜索模块。 - 在
Python安装路径下的Lib目录下查找。 - 使用
os.path可以看到所有的查找路径。
六、模块的循环导入:
比如有现在目录中有两个模块,一个a.py,一个b.py。在a.py中引用了b。而在b.py中又引用了a,那么这时候就产生了循环导入,让两个导入都不能完成。
七、__name__
如果是作为主程序来运行,那么等于__main__,如果是作为被导入的方式运行,那么是这个文件的名称。
八、安装包或者模块:
可以通过pip或者easy_install安装。pip是现代化的一种安装包的方式,以下讲解pip的常用命令:
-
安装包:
pip install requests -
安装指定版本的包:
pip install django == 1.10.6 -
卸载包:
pip uninstall django -
升级包:
pip install -U requests -
升级
pip:pip install -U pip -
查看当前
pip是哪个版本:pip --version -
显示某个已安装的包的信息:
pip show -f <包名> -
列出当前环境下安装了哪些包:
pip list -
将当前环境安装的包全部列出来放在文件中:
pip freeze > requirements.txt -
从某个文件中安装包:
pip install -r requirements.txt -
临时更改安装源,以豆瓣源为例:
pip install <包名> -i https://pypi.douban.com/simple -
永久更改安装源:
-
windows操作系统:在当前用户目录下新建
pip/pip.ini,然后在文件中添加以下代码:[global] index-url = https://pypi.douban.com/simple -
Linux/Mac:在用户目录下新建
.pip/pip.conf,然后在文件中添加以下代码:[global] index-url = https://pypi.douban.com/simple
-
