5.19打卡
@浙大疏锦行
知识点回顾:
1. 导入官方库的三种手段
2. 导入自定义库/模块的方式
3. 导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致)
作业:自己新建几个不同路径文件尝试下如何导入
# circle.py
import math
def calculate_area(radius):return math.pi * radius ** 2
场景1: `main.py` 和 `circle.py` 都在同一目录
# main.py
from circle import calculate_area
radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")
场景2: `main.py` 和 `circle.py` 都在根目录的子目录 `model/` 下
# main.py
from circle import calculate_area
radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")
场景3: `main.py` 在根目录,`circle.py` 在子目录 `model/` 下
# main.py
from model.circle import calculate_area
radius = 5
area = calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")
场景4:
项目根目录/
├── circle2.py
└── utils/
├── __init__.py (必需添加,将 model 目录标记为一个可导入的包)
└── circle.py
└── model/
└── main.py
import sys
for i in sys.path:print(i)
import os
project_root = os.path.abspath(os.path.join(os.getcwd(), '..'))
# 如果项目根目录不在 sys.path 中,则添加它 (通常添加到开头,优先搜索)
if project_root not in sys.path:sys.path.insert(0, project_root)
from utils import circle # 这是根目录绝对路径的导入方式
radius = 5
area = circle.calculate_area(radius)
print(f"半径为 {radius} 的圆,面积是: {area}")