“没有名为…”的模块具有特定的项目结构

2024-06-16 18:01:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我的项目结构如下:

MainScript.py
ExampleFolder
├ MainImport.py
└ SecondaryImport.py

MainScript.py:import ExampleFolder.MainImport
mainport.py:Import SecondaryImport


当我尝试运行MainImport.py时,它没有得到任何错误,但是当我尝试运行MainScript.py时,我得到了一个显示为No module named 'SecondaryImport'的导入错误

我的问题很简单-有没有任何方法可以只从MainScript.py导入MainImport.py而不产生这个错误,并且导入SecondaryImport.py?提前谢谢

我还尝试将名为__init__.py的空白文件添加到ExampleFolder,但仍然出现错误。我也读了Python's official documentation,但找不到问题。我错过什么了吗


Tags: 项目方法nopyimport错误结构named
2条回答

我认为使用语句import ExampleFolder.SecondaryImport会奏效

如果是这样,则可能会发生错误,因为如文档中所述,如果模块本身不在python中,import语句通常会开始搜索调用python解释器的主项目目录

另一种方法是像这样使用相对导入语句: import .secondaryimport以便告诉python解释器查看当前目录。希望这有帮助

看看这些链接会有所帮助,我想(当我陷入类似的问题时,它对我有帮助): https://docs.python.org/3/library/sys.html#sys.pathhttps://realpython.com/absolute-vs-relative-python-imports/

I have also tried adding a blank file named __init__.py to the ExampleFolder

这就是方法-你正在用这种方法从一个目录创建一个Python包。对于包,您已经获得了名称空间directory.file,其中file是一个Python文件,在Python世界中也称为模块

然后可以从mainscript.py执行以下操作:

from examplefolder import mainimport

要导入内部包,可以在mainscript.py中使用以下语法:

import secondaryimport

并在mainscript.py中使用它作为:

sevondaryimport.SomeClass()

或者你可以这样做:

from secondaryimport import SomeClass

使用方法如下:

SomeClass()

顺便说一句,除类名外,所有情况下都使用小写-只有它们应该有大小写名称

相关问题 更多 >