Mac 运行 Python 文件报错: ModuleNotFoundError: No module named 'XXX'!

2019-10-11 22:48:24 +08:00
 iQiQi

大家好,请教一个 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 文件中添加成功后再次运行仍然报错,不知道大家有没有遇到过这个问题?

谢谢

3847 次点击
所在节点    Python
15 条回复
aborigine
2019-10-11 22:53:00 +08:00
你装了 baidu_theme_spider 这个 module 吗
aborigine
2019-10-11 22:54:03 +08:00
或者你有这个 baidu_theme_spider.py 文件吗
iQiQi
2019-10-11 22:54:48 +08:00
@aborigine 忘了修改,那是一个文件名!
renmu
2019-10-11 23:55:05 +08:00
你应该贴一下你的文件树结构,不然没办法判断
BBCCBB
2019-10-11 23:58:01 +08:00
搜一下 python -m
ClericPy
2019-10-12 00:01:40 +08:00
我感觉你的 cwd 的问题...

首先, 搞懂各种路径的意思
cwd pwd 等等
其次, 这个时代别纠结 os.path 了, 直接用 pathlib
再次, importlib 可以解决一部分绝对路径的引用问题
wongyusing
2019-10-12 00:31:31 +08:00
你贴一下项目结构。
我估计你的目录里面没有 __init__.py 文件
Trim21
2019-10-12 01:29:06 +08:00
贴一下你的文件目录结构以及你终端工作路径的位置

python3 里没有 init 文件也能正常从子文件夹里面直接 import 对应文件,所以这个多半不是问题
careofzm
2019-10-12 10:19:06 +08:00
尝试了一下,并没有发现问题
首先,Python 会将当前执行文件的所在的文件夹自动加入 path
你的代码会将当前执行文件的所在的文件夹的上级文件夹加入 path
如果你的 baidu_theme_spider 是自己写的, 在这两文件夹内是不会找不到的
iQiQi
2019-10-16 19:48:05 +08:00
@renmu 嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!
iQiQi
2019-10-16 19:48:15 +08:00
@BBCCBB 嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!
iQiQi
2019-10-16 19:48:34 +08:00
@ClericPy 是的,是文件路径的问题,已正常,谢谢!
iQiQi
2019-10-16 19:49:15 +08:00
@Trim21 嗯嗯,引入文件路径的问题!
ClericPy
2019-10-16 19:53:35 +08:00
@iQiQi 偷偷提一句... 可以在一次回复里用回车隔开多个人的引用什么的... 省不少铜币
iQiQi
2019-10-28 18:44:13 +08:00
@ClericPy 哦哦,谢谢,用的比较少!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/608413

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX