【问题标题】:ModuleNotFoundError python with init file [duplicate]ModuleNotFoundError python与初始化文件[重复]
【发布时间】:2021-11-05 16:37:48
【问题描述】:

我有一个简单的文件结构如下

+-- project
|   +-- app
    |   +-- server.py
    +-- box
    |   +-- __init__.py
    |   +-- boxes.py

我正在尝试将 box.py 中的函数导入服务器 .py,如下所示:

from box.boxes import functions

但我不断收到以下错误:

ModuleNotFoundError: No module named 'box'

谁能解释我做错了什么?

【问题讨论】:

    标签: python


    【解决方案1】:

    您必须将PYTHONPATH 变量设置为指向“项目”目录。这样做将导致所有导入语句从该位置开始索引。目前,您的导入查看调用者脚本 (server.py) 所在的本地目录(也称为 app 文件夹),当然其中没有包含 box 模块的 box 文件夹。

    这是一个简单的工作簿,其中包含您的确切问题,可帮助您快速设置:

    https://bic-berkeley.github.io/psych-214-fall-2016/using_pythonpath.html

    希望这会有所帮助 :) 祝你好运!

    【讨论】:

    • 但这只会让代码在我的机器上运行而不是在其他机器上运行,对吧?
    • 仅当您执行绝对路径时。你想要的是相对路径(也就是相对于调用者脚本所在的位置而不是根目录)。或者,如果您不想打扰环境变量,如果您不介意代码中的长行并且导入不在顶部,则可以执行以下操作:stackoverflow.com/questions/54874706/… PS:如果这有帮助,请不要'毫不犹豫地竖起大拇指并将其标记为答案 :) 将不胜感激!
    【解决方案2】:

    试试import .box.boxesfrom box import boxes

    【讨论】:

      猜你喜欢
      • 2017-02-09
      • 2020-07-18
      • 2017-11-15
      • 2018-07-14
      • 2014-03-22
      • 1970-01-01
      • 2015-05-01
      • 2012-09-29
      • 2016-12-12
      相关资源
      最近更新 更多