Python中在Mac上运行Python文件报错:ModuleNotFoundError: No module named 'XXX'如何解决?

大家好,请教一个 Python 报错问题。

我在 Mac 终端运行 Python 文件.py 时一直报错:


print('ModuleNotFoundError: No module named 'baidu_theme_spider'')

在网上查找了一些方法均失效,最常用的方法是在.py 文件中加入以下代码:


import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

不过我在.py 文件中添加成功后再次运行仍然报错,不知道大家有没有遇到过这个问题?

谢谢


Python中在Mac上运行Python文件报错:ModuleNotFoundError: No module named 'XXX'如何解决?

16 回复

你装了 baidu_theme_spider 这个 module 吗


这个报错就是Python找不到你import的那个模块。核心原因就两个:要么模块没装,要么Python解释器找错了地方。

1. 先确认模块是否安装 打开终端,运行:

pip3 list | grep XXX

如果没输出,说明没装。用这个命令安装:

pip3 install XXX

2. 检查Python环境 Mac系统自带Python2.7,但你可能在用Python3。在终端运行:

which python3
which pip3

确保你运行脚本时用的是python3 your_script.py,而不是python your_script.py

3. 如果是自己写的本地模块 假设目录结构是这样:

project/
├── main.py
└── mymodule/
    └── __init__.py

main.py里import时要用相对或绝对导入:

# 正确
from mymodule import something
# 或
from .mymodule import something

4. 检查PYTHONPATH 在终端临时添加当前目录到Python路径:

export PYTHONPATH="${PYTHONPATH}:$(pwd)"
python3 your_script.py

总结:先pip3安装模块,再用python3运行脚本。

或者你有这个 baidu_theme_spider.py 文件吗

忘了修改,那是一个文件名!

你应该贴一下你的文件树结构,不然没办法判断

搜一下 python -m

我感觉你的 cwd 的问题…

首先, 搞懂各种路径的意思
cwd pwd 等等
其次, 这个时代别纠结 os.path 了, 直接用 pathlib
再次, importlib 可以解决一部分绝对路径的引用问题

你贴一下项目结构。
我估计你的目录里面没有 init.py 文件

贴一下你的文件目录结构以及你终端工作路径的位置

python3 里没有 init 文件也能正常从子文件夹里面直接 import 对应文件,所以这个多半不是问题

尝试了一下,并没有发现问题
首先,Python 会将当前执行文件的所在的文件夹自动加入 path
你的代码会将当前执行文件的所在的文件夹的上级文件夹加入 path
如果你的 baidu_theme_spider 是自己写的, 在这两文件夹内是不会找不到的

嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!

嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!

是的,是文件路径的问题,已正常,谢谢!

嗯嗯,引入文件路径的问题!

偷偷提一句… 可以在一次回复里用回车隔开多个人的引用什么的… 省不少铜币

哦哦,谢谢,用的比较少!

回到顶部