V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
iQiQi
V2EX  ›  Python

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

  •  
  •   iQiQi ·
    iQiQiQi · 2019-10-11 22:48:24 +08:00 · 4096 次点击
    这是一个创建于 1897 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    谢谢

    15 条回复    2019-10-28 18:44:13 +08:00
    aborigine
        1
    aborigine  
       2019-10-11 22:53:00 +08:00
    你装了 baidu_theme_spider 这个 module 吗
    aborigine
        2
    aborigine  
       2019-10-11 22:54:03 +08:00
    或者你有这个 baidu_theme_spider.py 文件吗
    iQiQi
        3
    iQiQi  
    OP
       2019-10-11 22:54:48 +08:00
    @aborigine 忘了修改,那是一个文件名!
    renmu
        4
    renmu  
       2019-10-11 23:55:05 +08:00 via Android
    你应该贴一下你的文件树结构,不然没办法判断
    BBCCBB
        5
    BBCCBB  
       2019-10-11 23:58:01 +08:00
    搜一下 python -m
    ClericPy
        6
    ClericPy  
       2019-10-12 00:01:40 +08:00
    我感觉你的 cwd 的问题...

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

    python3 里没有 init 文件也能正常从子文件夹里面直接 import 对应文件,所以这个多半不是问题
    careofzm
        9
    careofzm  
       2019-10-12 10:19:06 +08:00
    尝试了一下,并没有发现问题
    首先,Python 会将当前执行文件的所在的文件夹自动加入 path
    你的代码会将当前执行文件的所在的文件夹的上级文件夹加入 path
    如果你的 baidu_theme_spider 是自己写的, 在这两文件夹内是不会找不到的
    iQiQi
        10
    iQiQi  
    OP
       2019-10-16 19:48:05 +08:00
    @renmu 嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!
    iQiQi
        11
    iQiQi  
    OP
       2019-10-16 19:48:15 +08:00
    @BBCCBB 嗯嗯,十分感谢!是引入文件路径的问题,已正常,谢谢!
    iQiQi
        12
    iQiQi  
    OP
       2019-10-16 19:48:34 +08:00
    @ClericPy 是的,是文件路径的问题,已正常,谢谢!
    iQiQi
        13
    iQiQi  
    OP
       2019-10-16 19:49:15 +08:00
    @Trim21 嗯嗯,引入文件路径的问题!
    ClericPy
        14
    ClericPy  
       2019-10-16 19:53:35 +08:00
    @iQiQi 偷偷提一句... 可以在一次回复里用回车隔开多个人的引用什么的... 省不少铜币
    iQiQi
        15
    iQiQi  
    OP
       2019-10-28 18:44:13 +08:00
    @ClericPy 哦哦,谢谢,用的比较少!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2075 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:40 · PVG 08:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.