You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建__init__.py时无法引入tracks_functions.py函数的问题求助

Python项目打包中函数调用NameError问题的解决

问题原因

  • __init__.py未正确从tracks_functions.py导入目标函数,导致外部调用时无法找到函数名
  • 要么是导入路径错误,要么是未将函数显式暴露到包的命名空间中

解决步骤

先假设你的项目目录结构如下(结合描述还原):

your_project/
├── py_scripts/
│   ├── __init__.py
│   ├── tracks_functions.py
│   └── (存放DataFrame的脚本,比如data_loader.py)
└── (其他项目文件)

1. 修正__init__.py代码

如果你的DataFrame来自py_scripts下的某个脚本(比如data_loader.py里的df变量),同时要导入tracks_functions中的函数,直接修改__init__.py:

# 导入DataFrame(根据实际存放脚本调整路径)
from .data_loader import df
# 导入tracks_functions中的目标函数
from .tracks_functions import make_corr, print_corr_matrix

这样就把df、make_corr、print_corr_matrix直接暴露在py_scripts包的命名空间下,外部调用时可以直接用from py_scripts import df, make_corr, print_corr_matrix

2. 验证核心前提

  • 确认tracks_functions.py确实在py_scripts目录下,文件名拼写完全一致(Python对文件名大小写敏感)
  • 确保项目根目录在Python的sys.path中,或者你是从项目根目录运行代码(避免路径找不到包)

3. 测试调用

在项目根目录下写个测试脚本验证:

from py_scripts import df, make_corr, print_corr_matrix

# 测试函数功能
corr_result = make_corr(df)
print_corr_matrix(corr_result)

如果不再触发NameError,说明问题已解决

常见误区提醒

  • 不要只写import .tracks_functions,这种写法会把函数放在tracks_functions子命名空间下,外部需要用py_scripts.tracks_functions.make_corr调用,无法直接使用make_corr
  • 检查tracks_functions.py中是否确实定义了make_corr和print_corr_matrix函数,避免函数名拼写错误

内容的提问来源于stack exchange,提问作者spool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:47:37