s y s . p a t h 问 题 sys.path问题 sys.path问题
什么是sys.path
指定模块的搜索路径的字符串列表。
什么是模块?模块就是一个py文件
什么是包?包就是问价夹加一个__init__.py文件
一 广 义 模 块 分 类 一 广义模块分类 一广义模块分类
二 模 块 的 导 入 二 模块的导入 二模块的导入
2.1、导入整个模块——import 模块名
- 调用方式:模块名.函数名或类名
import time
start = time.time() # 调用time模块中的time()
time.sleep(5) # 调用time模块中的sleep() 休息3秒钟
end = time.time()
print("程序运行用时:{:.2f}秒".format(end-start))
2.2、从模块中导入类或函数——from 模块 import 类名或函数名
- 调用方式:函数名或类名
from itertools import product
ls = list(product("AB", "123"))
print(ls)
一次导入多个
from function import fun1, fun2
fun1.f1()
fun2.f2()
2.3、导入模块中所有的类和函数——from 模块 import *
from random import *
print(randint(1,100)) # 产生一个[1,100]之间的随机整数
print(random()) # 产生一个[0,1)之间的随机小数
三 模 块 的 查 找 路 径 三 模块的查找路径 三模块的查找路径
模块搜索查找顺序:
1、内存中已经加载的模块
2、内置模块
3、sys.path路径中包含的模块
- 1、内存中已经加载的模块
import fun1
fun1.f1()
# 删除硬盘上的fun1 文件
import fun1
fun1.f1()
# 修改硬盘上的fun1 文件
import fun1
fun1.f1()
# 居然没变,说明是优先从内存中读取的
- 2、内置模块
# 2、内置模块
# Python 启动时,解释器会默认加载一些 modules 存放在sys.modules中
# sys.modules 变量包含一个由当前载入(完整且成功导入)到解释器的模块组成的字典, 模块名作为键, 它们的位置作为值
import sys
print("*****************")
print(len(sys.modules))
print("*****************")
print("math" in sys.modules)
print("*****************")
print("numpy" in sys.modules)
print("*****************")
for k,v in list(sys.modules.items())[:3]:
print(k, ":", v)
print("*****************")
- 3、sys.path路径中包含的模块
import sys
for i in sys.path:
print(i)
* sys.path的第一个路径是当前执行文件所在的文件夹
* 若需将不在该文件夹内的模块导入,需要将模块的路径添加到sys.path
import sys
sys.path.append("C:\\Users\\ibm\\Desktop") # 注意是双斜杠
import fun3
fun3.f3()