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

Python已配置__init__.py仍无法找到src目录下自定义模块问题求助

问题原因
  • Python导入模块时会优先搜索sys.path列表中存储的路径,默认会自动加入的路径包括:运行脚本所在的目录、Python核心库路径、虚拟环境第三方库路径,不会默认包含执行命令时的当前工作目录。
  • 你执行streamlit run app\script.py时,实际运行的脚本是app/script.py,所以sys.path默认加入的是project/app路径,项目根目录project本身不在搜索路径范围内,因此不管是导入project.src还是直接导入src都会找不到模块。
  • __init__.py的作用仅为将所在目录标记为Python可识别的导入包,前提是该目录的上层路径已经在sys.path的搜索范围内,因此你已经加了__init__.py依然报错和这个配置无关。
可行解决方案
  • 方案1:脚本内临时添加搜索路径
    在script.py的最开头添加如下代码,将项目根目录手动加入搜索路径,之后直接用from src.file import func导入即可:
import sys
import os
# 获取script.py所在目录的上层路径,即project根目录
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  • 方案2:临时配置PYTHONPATH环境变量
    执行streamlit运行命令前,先在当前终端执行Windows环境变量配置命令:
    set PYTHONPATH=%cd%;%PYTHONPATH%
    再执行streamlit run app\script.py即可正常导入。

  • 方案3:长期开发可使用可编辑安装
    在项目根目录project下新增pyproject.toml基础配置,或者简单的setup.py文件,之后在根目录执行pip install -e .,将当前项目安装到你的conda虚拟环境中,后续无需额外配置即可全局导入src下的模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 18:30:01