PCAP学习:跨目录导入Python模块遇ModuleNotFoundError求助
跨目录导入Python模块报错ModuleNotFoundError的原因与解决办法
核心原因:路径分隔符不兼容
macOS(类Unix系统)使用**正斜杠/**作为路径分隔符,而你代码里写的..\pyImport是Windows系统的反斜杠格式,Python在macOS环境下无法正确解析这个路径,导致找不到目标目录。
额外需要确认的问题
- 相对路径的基准目录
Python中相对路径的基准是终端当前的工作目录,而不是脚本文件所在的目录。如果你的终端工作目录不是pyWorks目录,..\pyImport指向的位置会完全错误。推荐用脚本的绝对路径来拼接目标路径,避免这个问题:import sys import os # 获取当前脚本的绝对路径所在目录 script_dir = os.path.dirname(os.path.abspath(__file__)) # 拼接上级目录下的pyImport路径并添加到sys.path target_path = os.path.join(script_dir, '..', 'pyImport') sys.path.append(target_path) # 导入模块 from extra.iota import funI - 包的识别问题
确保extra文件夹内存在__init__.py文件(Python 3.3+支持无该文件的命名空间包,但部分场景下仍需此文件标记为Python包)。 - 大小写敏感
macOS文件系统默认大小写敏感,检查extra文件夹的拼写是否和代码中的导入语句完全一致(比如Extra和extra会被视为不同目录)。
内容的提问来源于stack exchange,提问作者molik
相关产品推荐
相关产品推荐

