python 之 初识模块

什么是模块

什么是模块

一个.py文件 就是一个模块

我们使用import加载的模块分为4个通用类别

1、py文件

2、包好一组模块的包(带__init__.py文件的文件夹)

3、内置模块

4、已被编译成共享库或者dLL的C或者C++扩展

为什么要用模块?

  1. 最大的好处是大大提高了代码的可维护性。一个完善的系统代码起码有几万行代码,把它们放在一个py文件中,对于编写或者修改都不是很方便和管理,所以把表示不同功能的代码分别放在不同的py文件中。

  2. 其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。

  3. 使用模块还可以避免函数名和变量名冲突。每个模块有独立的命名空间,因此相同名字的函数和变量完全可以分别存在不同的模块中,所以,我们自己在编写模块时,不必考虑名字会与其他模块冲突

模块的分类

1、内置标准模块

2、第三方开源模块

3、自定义模块

如何使用模块

模块的调用

模块的导入应该在程序开始的地方

模块一旦被导入调用,就相当于执行了另外一个py文件里的代码

调用语法

import xx

from xx import xx

from xx import xx as xx

模块的导入路径


发现,自己写的模块只能在当前路径下的程序里才能导入,换一个目录再导入自己的模块就报错说找不到了, 这是为什么?

这与导入路径有关

import sys
print(sys.path)

输出

[‘D:\\路飞学城-python中级\\PycharmProjects\\全栈开发中级\\M2\\复习和总结‘,
 ‘D:\\路飞学城-python中级\\PycharmProjects‘, ‘F:\\Python36\\python36.zip‘,
‘F:\\Python36\\DLLs‘,
 ‘F:\\Python36\\lib‘,
 ‘F:\\Python36‘,
‘F:\\Python36\\lib\\site-packages‘,
 ‘F:\\Program Files\\JetBrains\\PyCharm 2018.1.2\\helpers\\pycharm_matplotlib_backend‘]

python解释器会按照列表顺序去依次到每个目录下去匹配你要导入的模块名,只要在一个目录下匹配到了该模块名,就立刻导入,不再继续往后找。

第一个元素,即代表当前目录,所以你自己定义的模块在当前目录会被优先导入。

开源模块的安装和使用

开源模块是什么?

简单的说,就是世界上有很多程序员大佬,他们自己写了一个特定功能的python模块,然后集中上传到一个地方,供其他程序员免费下载和使用

https://pypi.python.org/pypi 是python的开源模块库,截止2017年9.30日 ,已经收录了118170个来自全世界python开发者贡献的模块,几乎涵盖了你想用python做的任何事情。 事实上每个python开发者,只要注册一个账号就可以往这个平台上传你自己的模块,这样全世界的开发者都可以容易的下载并使用你的模块。

开源模块的安装

1、使用pip直接安装

pip install ipython

2、使用国内源安装

默认pip是使用Python官方的源,但是由于国外官方源经常被墙,导致不可用,我们可以使用国内的python镜像源,从而解决Python安装不上库的烦恼。

网上有很多可用的源,例如:
豆瓣:http://pypi.douban.com/simple/
清华:https://pypi.tuna.tsinghua.edu.cn/simple
1、临时使用,只有安装ipython时使用指定源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ipython

2、永久修改,一劳永逸

Linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url至tuna,内容如下:
 [global]
 index-url = https://pypi.tuna.tsinghua.edu.cn/simple

windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下:
 [global]
 index-url = https://pypi.tuna.tsinghua.edu.cn/simple

包(package)

概念:一个文件夹管理多个模块文件,这个文件夹就叫做包,每个包文件有一个显著特征就是有一个__init__.py文件,如果没有这个文件,就不是包

跨模块导入

只要能够找到路径,就能导入模块

所以,只要把相关模块的父级目录添加到环境变量(sys.path)中,然后再从这个父级目录中导入就可以找到模块了

原文地址:https://www.cnblogs.com/yxiaodao/p/9095468.html

时间: 2024-10-08 22:46:46

python 之 初识模块的相关文章

Python之初识模块二

os模块 os模块是与系统交互的一个接口 os.makedirs('dirname1/dirname2') 可生成多层递归目录 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir('dirname') 生成单级目录:相当于shell中mkdir dirname os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错:相当于shell中rmdir dirname os.listdi

Python中subprocess 模块 创建并运行一个进程

python的subprocess模块,看到官方声明里说要尽力避免使用shell=True这个参数,于是测试了一下: from subprocess import call import shlex cmd = "cat test.txt; rm test.txt" call(cmd, shell=True) 运行之后: 1:打开并浏览了test.txt文件 2:删除了test.txt文件 from subprocess import call import shlex cmd = &

python时间处理模块 datetime time模块 deltetime模块

1 首先介绍time模块,因为简单 python 自带模块 本人使用time模块,只使用两个函数 time函数和sleep函数 import time a.     time.time()   函数 返回unix时间  常用作两个时间差的计算 b.     time.sleep()  休眠多久,精度为子秒(subsecond) In [90]: t1 = time.time() In [91]: t1 Out[91]: 1461400225.877932 In [92]: time.sleep(

python安装mysqldb模块

今天在阿里云一台新的服务器部署程序后台,发现上面的python缺少MySQLDB 模块,记录安装过程. 首先django程序,运行 python manage.py sycdb 报错: ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb MySQLdb模块的包名字叫mysql-python,于是pip安装之,(关于pip,可以参考这篇文章) 运行: pip install mysql-python

Python 利用pytesser模块识别图像文字

使用的是python的pytesser模块,原先想做的是图片中文识别,搞了一段时间了,在中文的识别上还是有很多问题,这里做记录分享. pytesser,OCR in Python using the Tesseract engine from Google.是谷歌OCR开源项目的一个模块,可将图片中的文字转换成文本(主要是英文). 1.pytesser安装 使用设备:win8 64位 PyTesser使用Tesseract OCR引擎,将图像转换到可接受的格式,然后执行tesseract提取出文

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h

Python中time模块详解

在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块. 在开始之前,首先要说明这几点: 在Python中,通常有这几种方式来表示时间:1)时间戳 2)格式化的时间字符串 3)元组(struct_time)共九个元素.由于Python的time模块实现主要调用C库,所以各个平台可能有所不同. UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST

[ python编程 ] subprocess模块学习总结

转载:http://www.jb51.net/article/48086.htm 从Python 2.4开始,Python引入subprocess模块来管理子进程,以取代一些旧模块的方法:如 os.system.os.spawn*.os.popen*.popen2.*.commands.*不但可以调用外部的命令作为子进程,而且可以连接到子进程的input/output/error管道,获取相关的返回信息. 一.subprocess以及常用的封装函数    运行python的时候,我们都是在创建并

定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)

1 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容.提示(可以了解python的urllib模块) 2 import urllib.request 3 4 def get_page(url): 5 response = urllib.request.urlopen(url) 6 html = response.read() 7 return html 8 9 print(get_page(url='https://www.baidu,com'))