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

使用flet run从终端运行Flet应用时出现ModuleNotFoundError,但PyCharm中运行正常

flet run从终端运行Flet应用时出现ModuleNotFoundError,但PyCharm中运行正常

嗨,这个问题我之前也碰到过,本质是PyCharm和终端的Python模块搜索路径(sys.path)不一样导致的。PyCharm会自动帮你把项目相关的目录加到Python的搜索路径里,但终端用flet run的时候不会自动做这件事,所以Python找不到legajos_automaticos这个顶层模块。

先给你拆解下原因:你的main.py里用了from legajos_automaticos.src.app_layout import AppLayout这种绝对导入,PyCharm默认把proyectos_flet/目录(也就是legajos_automaticos/的父目录)加到了sys.path里,所以能找到这个模块;但终端里运行flet run时,这个目录没被自动加入,Python自然就找不到了。

下面给你几个实用的解决方案,按推荐程度排序:

方案一:用可编辑安装(最推荐,长期项目必备)

这个方法能让你的项目在任何环境下都保持一致的导入路径,和PyCharm的运行逻辑对齐:

  1. 先激活你的虚拟环境.venv
  2. 切换到legajos_automaticos/目录(就是有pyproject.toml的那个目录)
  3. 运行命令:
    pip install -e .
    
    这个命令会把你的项目以"可编辑模式"安装到虚拟环境里,相当于告诉Python:这个目录下的legajos_automaticos是一个可直接导入的包。
  4. 之后不管你在哪个目录下,直接运行flet run -d src/main.py(或者指定完整路径flet run -d C:\Users\ricar\proyectos_flet\legajos_automaticos\src\main.py)都不会再报错了。

方案二:临时设置PYTHONPATH环境变量

如果你只是想快速测试,不想修改项目配置,可以临时把父目录加到Python的搜索路径里:

  1. 激活虚拟环境后,在PowerShell里运行:
    $env:PYTHONPATH = "C:\Users\ricar\proyectos_flet"
    
    (如果是CMD的话,用set PYTHONPATH=C:\Users\ricar\proyectos_flet)
  2. 然后在legajos_automaticos/目录下运行:
    flet run -d src/main.py
    
    注意:这个设置只在当前终端窗口有效,关闭后就失效了。

方案三:改用相对导入

如果你的项目结构比较简单,也可以修改main.py里的导入语句,换成相对路径:
把from legajos_automaticos.src.app_layout import AppLayout改成:

from .app_layout import AppLayout

因为main.py和app_layout.py在同一个src/目录下,都是src包的一部分(已经有__init__.py),所以相对导入是可行的。不过这种方式如果后续项目结构变动,可能需要调整大量导入语句,适合小型项目临时用。

你可以根据自己的需求选一个,个人最推荐方案一,一劳永逸解决路径问题~

备注:内容来源于stack exchange,提问作者Ricman1029

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.14 13:10:26