Python导入了错误的软件包文件

时间:2019-09-30 08:44:24

标签: python-3.x

导入我创建的模块/软件包时遇到问题。

from routes.b2b import api as Api
Api.User.Validate

Api.User.Validate的错误为module 'utils.db.system.User' has no attribute 'Validate',这应该不是因为我导入的是Api.User.Validate而不是utils.db.system.User

这是因为我创建的软件包的命名冲突吗?但它们放在不同的目录中。

import tornado.web

import routes.b2b as Routes
from routes.b2b import api as Api

print(Routes)

URLS=[
    tornado.web.url(r"/", Routes.Main.Index,name="defaut"),

    tornado.web.url(r"/overlay", Routes.Main.Overlay,name="overlay"),

    tornado.web.url(r"/api/user", Api.User.Validate,name="overlay"),
    # PDF's
    tornado.web.url(r"/api/document/voucher.pdf", Routes.PDF.Voucher,name="voucher"),
    tornado.web.url(r"/api/document/invoice.pdf", Routes.PDF.Invoice,name="invoice"),
]

现在我认为包装上应该没有冲突,我的问题是,为什么它要求utils.db.system.User而不是Api.User.Validate下的routes.b2b

我的理论是,导入时可能会发生冲突,因为如果我有routes.api.Cartroutes.api.Travel包,那么routes.api.Travel的对象和对象Cart现在我导入routes.api.Cart,它将引用routes.api.Travel.Cart而不是routes.api.Cart

python3有东西吗?还是我错误地配置了我创建的软件包?

同时,我没有更改软件包,以免与文件的其他子目录或类冲突,我也了解了from __future__ import absolute_import,但仍然无法正常工作

0 个答案:

没有答案