Python导入类错误,试图理解根目录

2024-09-30 12:29:17 发布

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

我才4天大的Python。我只是想了解root-uniu init\uy.py导入功能。GoogleLot了解相同,但没能找到一个有用的链接(可能是我的搜索键不相关)。请分享一些链接。在

我得到的错误是“ImportError:无法导入name Person”

下面是结构

Example(directory)
    model
        __init__.py (empty)
        myclass.py
    __init__.py
    run.py

在我的class.py在

^{pr2}$

初始值

from model.myclass import Person

在运行.py在

from model import Person

def donext():
    person = Person()
    person.print_name()

if __name__ == '__main__':
    donext()

Tags: namefrompyimport功能modelinit链接
2条回答

或者,正如@gonczor建议的那样,您只需将\uu init_uu空(而且,您不需要根目录),然后直接从包中导入:

from model.myclass import Person

或者,如果您有意要使包的接口变平,那么可以这样简单:

型号/初始型号

^{pr2}$

在运行.py在

from model import Person

错误基本上是说解释器在给定的名称空间中找不到任何与Person匹配的内容,在您的例子中是model包。这是因为它在model.myclass包中,但是它被导入到root而不是{}。在

python中的模块基本上是带有__init__.py脚本的目录。但是从init在根级别导入任何东西都很困难。而且,这是没有必要的。在

好的,所以这意味着解决方案要么直接从model包导入,要么从rott级别__init__.py导入。我推荐前一种方法,因为它更常用。你可以这样做:

from model.myclass import Person

def donext():
    person = Person()
    person.print_name()

if __name__ == '__main__':
    donext()

并将__init__.py留空。它们只用于初始化,因此不需要将所有内容导入它们。在

您可以将某些内容放入model/__init__.py,然后将其导入myclass.py中,如下所示:

__init__.py

^{pr2}$

myclass.py

from . import something
print something

相关问题 更多 >

    热门问题