[英]"No module named..." with certain project structure
我有以下项目结构:
MainScript.py
ExampleFolder
├ MainImport.py
└ SecondaryImport.py
MainScript.py: import ExampleFolder.MainImport
MainImport.py: Import SecondaryImport
当我尝试运行MainImport.py
它没有错误,但是当我尝试运行MainScript.py
,我收到一个导入错误,显示No module named 'SecondaryImport'
。
我的问题很简单-有什么办法,我只能导入MainImport.py
从MainScript.py
没有得到这个错误,并导入SecondaryImport.py
? 提前致谢!
我也尝试将名为__init__.py
的空白文件添加到ExampleFolder
,但错误仍然出现。 我也看了Python的官方文档,但是没找到问题所在。 我错过了什么吗? (:
我认为使用语句import ExampleFolder.SecondaryImport
会起作用。
如果是,则可能会发生错误,因为如文档中所述,如果您的模块不在 python 中,import 语句通常会开始搜索调用 python 解释器的主项目目录。
另一种方法是使用这样的相对导入语句: import .secondaryimport
以告诉 python 解释器查看当前目录。 希望这可以帮助!
我认为查看这些链接会有所帮助(当我遇到类似问题时它对我有所帮助): https: //docs.python.org/3/library/sys.html#sys.path https:// realpython.com/absolute-vs-relative-python-imports/
我还尝试将名为 __init__.py 的空白文件添加到 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()
顺便说一句,在除类名称之外的所有情况下都使用小写字母 - 只有它们应该具有 CamelCase 名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.