欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 焦点 > day30 导包

day30 导包

2025/6/21 13:56:22 来源:https://blog.csdn.net/weixin_61905403/article/details/148800825  浏览:    关键词:day30 导包

浙大疏锦行
作业:
项目目录如下,必须要__init__.py 表示util是一个包

my_project/                 <-- 项目根目录
|
├── main_script.py          <-- 主运行脚本
|
└── utils/                  <-- 工具包|├── __init__.py         <-- (空文件,但必须存在,表示这是一个包)|└── calculator.py       <-- 存放计算函数

编写模块代码

# utils/calculator.py
"""这是一个包含计算函数的模块。"""
import mathdef circle_area(radius):"""计算圆面积"""if radius < 0:return 0return math.pi * radius ** 2def rectangle_area(length, width):"""计算矩形面积"""if length < 0 or width < 0:return 0return length * width

导包

# main_script.py
import sys
import os# --- 动态修改 sys.path (这是最稳健的方式,我们保留它) ---
# 这一部分确保无论你在哪里运行脚本,项目根目录总能被找到
try:project_root = os.path.dirname(os.path.abspath(__file__))if project_root not in sys.path:sys.path.insert(0, project_root)
except NameError:# 在交互式环境(如Jupyter)中,__file__ 未定义,使用 os.getcwd()project_root = os.getcwd()if project_root not in sys.path:sys.path.insert(0, project_root)# --- 导入并进行调试 ---
try:from utils import calculator# 【新增的调试步骤】: 打印出 calculator 模块中所有可用的属性和方法# 这可以帮助我们确认 'circle_area' 是否真的被加载了print("--- 正在检查 'calculator' 模块内容 ---")print(dir(calculator))print("------------------------------------")# --- 调用函数 ---print("\n--- 正在调用函数 ---")radius = 10# 错误通常发生在这里area = calculator.circle_area(radius)print(f"✅ 计算成功!半径为 {radius} 的圆,面积是: {area:.2f}")except ImportError as e:print(f"❌ 导入失败: {e}。请检查项目结构和文件名是否正确。")
except AttributeError as e:print(f"❌ 属性错误: {e}")print("\n👉【解决方案】: 这个错误通常意味着目标函数没有在模块中被正确定义或加载。")print("   1. 请务必确认 `utils/calculator.py` 文件内容正确无误且已保存。")print("   2. 请务必删除 `utils` 文件夹下的 `__pycache__` 文件夹,然后重新运行。")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词