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

如何导入pycharm项目中同一子目录中的python文件

蓬思博
2023-03-14

调试和运行时,我在 pycharm 中遇到输入错误。

我的项目结构根是正确的,< code >等等。/HW3/。以便< code>HW3是根目录。

我在HW3中有一个子文件夹util,还有一个文件util/util.py。我在util中有另一个名为run_tests.py的文件。

run_tests.py中,我有以下导入结构,

from util.util import my_functions, etc.

这会产生一个输入错误,来自 util.util import load_dataset,proportionate_sample 导入错误:没有名为“util.util”的模块;“util”不是一个包

但是,在完全相同的项目中,在另一个名为 data 的目录(与 util 相同级别)中,我有一个文件 data/data_prep.py,它也使用类似的导入语句从 util/util 导入函数.py...它运行没有任何问题。

显然,我是在做作业的过程中这样做的,所以请理解:这是作业范围的附属。

当我将文件移动到另一个目录时,问题就消失了。所以我想这个问题是如何导入位于py

共有3个答案

汤修贤
2023-03-14

右键单击要标记为源的文件夹

孟永望
2023-03-14

如果您没有__init__.py请创建一个并添加此行

from util.util import my_function

然后,您可以轻松地在脚本中导入模块,__init__. py告诉python它应该将该文件夹视为python包,它也可以用于导入/加载模块。

在大多数情况下,< code>__init__。py为空。

引用文档:

<code>__init__。py文件是Python将目录视为包含包所必需的;这样做是为了防止具有公共名称的目录(如string)无意中隐藏模块搜索路径上稍后出现的有效模块。在最简单的情况下,<code>__init__。py只能是一个空文件,但它也可以执行包的初始化代码或设置__all_变量,稍后将描述。

廉子民
2023-03-14

推荐方式:

确保将工作文件夹设置为Sources

您可以在Pycharm中完成-

选择您的工作文件夹并将其标记为< code>Sources。然后Pycharm将工作文件夹识别为项目的源文件夹,您将能够通过使用

import filename.py

from filename.py import mudule1

=================

不推荐的方式:

Pycharm中,您只需在要从同一文件夹中导入.py文件之前添加 .在您的情况下,它将是

from .util import my_functions

资源

还有一个很好的参考,以获取更多信息,例如如何实现包相对导入。我强烈建议检查此页面。

包装相对进口

 类似资料:
  • 问题内容: 我有一个存储所有.py文件的目录。 我想从使用类user.py和dir.py在main.py。 如何将这些Python类导入main.py? 此外,如果user.py在子目录中,如何导入类? 问题答案: Python 2 在与文件相同的目录中创建一个名为的空文件。这将向Python表示“可以从此目录导入”。 然后做… 如果文件位于子目录中,则也应如此-将子目录也放入子目录中,然后使用带

  • 我在Python 3.3项目中有一个名为/models的目录。 从我的我只是做了一个 在我的: 这在我的应用程序中非常有效。 我有一个依赖于另一个模型的模型,例如在我的我需要导入。py。当我这样做时: 我得到错误。 如何从同一模块/目录中的文件A导入类B?

  • 问题内容: 这是我正在使用的结构: 我想要做的就是在script.py中定义的类进口和。如果我做: 对于中定义的类,它工作正常。但是使用此解决方案时,如果在不同文件中定义了许多类,并且我想导入所有这些类,则必须为每个文件键入一行。必须有一个捷径。我试过了: 但这没有解决。 编辑 :这是文件的内容: 这是(按照Apalala的建议使用): 这是: 这是: 这是: 这是我尝试运行时得到的跟踪: 问题答

  • 我的项目目录如下所示 我想导入func中的类“specs”。复制到项目.py 尝试过的代码:

  • 我有一个这样的文件结构: 在笔记本中的文件我想从和。 我已经找到了这个问题的答案,可以在每个笔记本中使用以下代码行,并每次将这些代码行作为第一个单元格运行: 有没有更好的办法?如果我有很多笔记本中的文件文件夹,我是否必须将这些代码行粘贴到每一行的开头?有更好、更简约或更干净的方法吗?

  • 我制作了我的python模块,它<code>A。py使用如下所示。在这种情况下,如何导入<code>B。py在?我想使用其他目录中的模块。但由于路径问题,我的代码无法工作。 A.py 碧桂园 main _ in _ mylib.py 主.py ModuleNotFoundError:没有名为“B”的模块 ModuleNotFoundError:没有名为“B”的模块