首页 > 解决方案 > 将同一个包导入本地包的多个模块

问题描述

我有一个我正在编写的 Flask 应用程序的本地“模型”包,其中每个模型类都存在于自己的 .py 文件中,并且“模型”目录有一个(当前为空,除了版本信息)__init__.py文件,因此我可以导入它。
此设置工作正常,但每个模块当前导入 sqlite3 来执行数据库操作。有没有办法使用单个导入语句,例如 in __init__.py,而不是在每个单独的模块中都需要一个语句?

我创建了一个非常简单的本地包,看看我是否可以让它自己工作,但这不起作用:

package-test/
    testpkg/
        __init__.py
        one.py

其中__init__.py包含from datetime import date as dtone.py包含:

def sayDate():
    return dt.today()

当我从 package-test 目录运行 REPL 时,我from testpkg import one没问题,但运行one.sayDate()返回name 'dt' is not defined.

保持它更通用,例如在模块的函数定义中做import datetimein__init__.py和说,而是返回。return datetime.date.today()name 'datetime' is not defined

或者有没有更好的方法来避免在多个模块中导入相同的东西?

谢谢!

标签: pythonimportpackage

解决方案


推荐阅读