当前位置: 首页 > 知识库问答 >
问题:

ModuleNotFoundError 即使有 __init__.py [重复]

瞿健
2023-03-14

我有一个结构如下的项目:

.
└── project
     ├── assignment01
     |      ├── __init__.py
     |      └── old_file.py
     |
     ├── assignment02
     |      ├── __init__.py
     |      └── new_file.py
     └── __init__.py

我需要使用我在导入的文件new_file.py中的第一个赋值中实现的函数,如下所示:

from assignment01 import old_file as assgn1

目前,我正在PyCharm中编程,IDE没有显示任何警告或问题。它甚至自动完成上面的代码。尽管如此,当我想运行<code>new_file时。py在命令行中抛出以下错误:

ModuleNotFoundError: No module named 'assignment01'

共有2个答案

束涵涤
2023-03-14

添加另一个< code>__init__。py,位于< code >项目目录中。

此外,使用代码,请尝试从项目目录运行new_file.py

示例:

python assignment02/new_file.py
邹毅
2023-03-14

您要么需要使这两个作业都成为包的一部分,方法是在项目中放置一个__init__.py,然后从 ..作业01 导入old_file。你需要从上面的项目python -m project.assignment1.newfile.main)调用你的代码,所以python会拿起外部包并能够解析..。或者您可以省略 .. 并简单地从项目中调用,如另一个答案中所述。无论如何,这个想法是在python可以找到并导入的地方获取assignment0

或者您需要将项目添加sys.path:

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent.parent))

您当前的导入失败,因为 python 正在 assignment02 中查找 assignment01,当然,失败了。

 类似资料:
  • 问题内容: 我在理解项目中python文件的使用场景或设计目标时遇到了困难。 假设我有“模型”目录(称为包),其中包含以下文件 我发现了两种使用方法: 我有需要使用一个共同的定义,,。我可以用作所有* model.py类的基础/通用定义吗?这意味着我必须导入。 或者,应当具有自己导入的solrmodel.py,mongomodel.py,samodel.py的定义,并且它允许像这样的类或函数的轻松

  • init.py

  • init.py 指定导入该包时,仅导入 Client 类,代码如下: __all__ = ['Client'] from heatclient.v1.client import Client

  • 问题内容: 我知道栈上有很多类似的问题。但是常见的答案似乎并不适合我。 我有这样的文件结构 我发现如果我在test.py中包含代码 要么 我将能够引用目录中的模块。但这没有用。 所以我尝试添加到路径,它正确添加了它: 但是即使是现在,当我尝试上述导入语句时,我仍然收到错误消息 要么 有什么明显的我想念的吗? 有没有办法检查我是否正确配置了文件,或查看我的程序包层次结构? 问题答案: 您需要更新,这

  • 问题内容: 我正在学习Python,但无法弄清楚导入的工作方式。 我从Python教程中了解到该文件初始化了一个程序包,并且可以在此处导入子程序包。 不过,我做错了。您能为我(以及将来的Python学习者)解释我做错了什么吗? 这是我正在尝试做的一个简化示例。 这是我的文件结构: 内容: 是空的。 包含: 最后,包含: 这就是我尝试使用OSX终端和Python 3运行hello_world.py的

  • 我试图遵循PEP 328,目录结构如下: 在中,我有以下导入语句 我有什么遗漏吗?