一、模块
什么是模块?
模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。
模块分为三种:
自定义模块
内置标准模块:python自带的
开源模块(第三方)
导入模块的本质,就是把python文件拿过来执行一次。
1、import导入
我有俩文件a.py和b.py,运行b.py,获得a里面得内容:
name='a.py'
deffunc():print('这个是a.py里面的函数')for i in range(5):print(i)
func()
import a #import一个模块,就是把这个模块里的代码执行一遍
运行结果:
01
2
3
4这个是a.py里面的函数
也可起别名:
name='a.py'
deffunc():print('这个是a.py里面的函数')
import a as apy #起别名
print(apy.name)
apy.func()
运行结果:
a.py
这个是a.py里面的函数
2、 if __name__=='__main__' 的运用
# if __name__=='__main__':#在自己里执行是__name__;在别家执行是a(文件名)
name = 'a.py'
deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;
#在别家执行是a(文件名)
for i in range(5):
func()
importaprint(a.name)
a.func()
运行结果:
__main__这个是a.py里面的函数
这个是a.py里面的函数
这个是a.py里面的函数
这个是a.py里面的函数
这个是a.py里面的函数
a
a.py
这个是a.py里面的函数
3、from导入,跟上面一样一样的
(1)用from导入func
name = 'a.py'
deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;
#在别家执行是a(文件名)
for i in range(5):
func()
from a import func #用from导入func
func()
运行结果:
a
这个是a.py里面的函数
(2)用from导入func和name
name = 'a.py'
deffunc():print('这个是a.py里面的函数')print(__name__)if __name__ == '__main__': #在自己里执行是__name__;
#在别家执行是a(文件名)
for i in range(5):
func()
from a import func, name #用from导入func和name
func()print(name)
运行结果:
a
这个是a.py里面的函数
a.py
二、导入模块的顺序:
1、从当前目录下找
2、从python的环境变量里面找
import一个文件夹的时候,就是执行这个文件夹下面的__init__.py
importsysprint(sys.path) #环境变量
sys.path.append(r'C:\Users\79954\PycharmProjects\ssz\day5') #r 源字符 加环境变量,加的时目录
sys.path.insert(0, r'C:\Users\79954\PycharmProjects\ssz\day5') #insert指定位置
运行结果:
['C:\\Users\\79954\\PycharmProjects\\ssz\\day5', 'C:\\Users\\79954\\PycharmProjects\\ssz', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_display', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\python37.zip', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\DLLs', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32', 'C:\\Users\\79954\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\site-packages', 'C:\\Program Files\\JetBrains\\PyCharm 2020.1.4\\plugins\\python\\helpers\\pycharm_matplotlib_backend', 'C:\\Users\\79954\\PycharmProjects\\ssz\\day5']
如以上运行结果所示:Pycharm也会自动帮咱加了环境,所以我们就可以导入ssz这个目录下的任何目录及文件了:
一个例子:
from day5 import tools #我们就可以导入ssz下的任何一个目录,pycharm会有提示
print(tools.test('s'))
deftest(s):return s + 'hhhhhhh'
运行结果:
shhhhhhh
再来一个例子:
from day2 import HelloWold
运行结果:
hello word!
蔡蔡长得非常"帅气、高大威猛"let'go,昌姐美丽又漂亮,因为是个“人妖”!!!
导入目录其他方式:
importsys#import day5#result = day5.tools.test('ggg') # 报错(AttributeError: module 'day5' has no attribute 'tools')
from day5 import tools #这种方式没问题
print(tools.test('ggg'))from day5.tools import test #这种方式没问题
result = test('ggg')print(result)
deftest(s):return s + 'hhhhhhh'
运行结果:
ggghhhhhhh
ggghhhhhhh
例子:
1,在day6目录下建一个__init__.py,写点内容(一般创建文件夹自带了)
2,在day5目录下的a.py里面import day5
__init__
结果: import 一个文件夹时,就是执行这个文件夹下的__init__.py
1)、我们首先在day6下建一个tools.py
deftest(s):return s + 'hhhhhhh'
deftest2():print('ooooo')
2)然后在day5文件下建目录文件.py
importday6
result= day6.tools.test('xxx')
day6.tools.test2()#可多个导入
print(result)
运行结果:
__init__ooooo
xxxhhhhhhh
三、第三方模块安装:
python的安装目录
python安装目录下面的scripts目录
首先,得确定环境是否正常(pip --help):
1、手动安装
2、带 .whl 结尾的需找到安装路径:pip install /Users/........
3、zip文件
先解压
进入解压目录
python setup.py install