问答 mac 上执行 py 文件提示找不到模块

懒人 · 2022年06月28日 · 最后由 微凉 回复于 2022年07月05日 · 8232 次阅读

有没有大佬遇到过 windows 正常执行,mac 上执行提示模块不存在。网上说加上如下代码解决,有没有好的方案呢

import os,sys

curPath = os.path.abspath(os.path.dirname(file))

rootPath = os.path.split(curPath)[0]

sys.path.append(rootPath)

共收到 9 条回复 时间 点赞
10楼 已删除

截图里的 api 是在 im_controller 的上一级目录,但你引入的时候是在 im_controller 文件的本级别直接引入,所以找不到是正常的。要引入上一级目录的模块,只能通过 sys.path.append 将上一级目录加入到 module 搜索路径中。

看起来你这个是个 web 项目,有可能是因为你程序入口不对导致出现了引用上一级目录模块这种情况。你确定这个项目启动入口就是 im_controller.py 这个文件么?

看下是不是 workspace 和 src root
设置缺失导致找不到

陈恒捷 回复

这个不是入口,只是单独运行这个调试一下。也只能用这个方式了 sys.path.append

imath60 回复

我是直接从 Windows copy 过来直接打开的,应该不用设置啥吧。是 1 楼说的那个原因

懒人 回复

这个调试姿势有点怪怪的,如果依赖模块多,你得加不少临时代码解决这个依赖模块问题,调完还得删掉。

直接按正常入口来启动 web 应用,做断点调试不会更香么?

陈恒捷 回复

为啥你这么高强度在线啊😂

jack 回复

没有吧,一般就等编译的时候,随手点开社区瞄一下消息通知而已。

在项目内进行 模块导入时,最好从项目根目录开始;

从项目根目录开始导入,然后把根目录通过 sys.path.append 加到环境变量里面

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册