0

我正在开发一个连接到几个不同数据库的 python 应用程序。我希望我的项目中的不同包能够使用数据库功能。我如何创建一个可以使用的“全局”包,而不是在每个包中创建数据库逻辑?这是我正在考虑使用的结构示例:

main.py
    package1/
        __init__.py
        stuff1.py
        stuff2.py
    package2/
        __init__.py
        moar1.py
        moar2.py
    database/
        __init__.py
        dbfunctions.py

我希望能够在 stuff 和 moar 文件中使用数据库函数,而无需从 main.py 调用它们。我希望能够在包中编写数据库逻辑、sql 等,并根据来自 main.py 的调用独立运行它们。

问题:如何将数据库函数导入 package1 和 package2?我想从同级目录中导入数据库项目。

(另外,我更熟悉使用 PHP 并且刚开始使用 python,所以如果我完全走错了路,我还没有开始编写应用程序。完全接受不同的结构建议。)

4

1 回答 1

0

要从同级目录导入,同级包需要是父包的一部分。

将布局更改为:

wholeproject/
    __init__.py
    main.py
    package1/
        __init__.py
        stuff1.py
        stuff2.py
    package2/
        __init__.py
        moar1.py
        moar2.py
    database/
        __init__.py
        dbfunctions.py

然后,在 main.py 中,你可以像这样导入东西和 moar:

from wholeproject.package1 import stuff1
from wholeproject.package2 import moar1

在 stuff1 你可以得到这样的 dbfunctions:

from wholeproject.database import dbfunctions

或者您可以根据需要获取各个功能……但这应该可以帮助您入门。你几乎拥有它!

于 2013-05-05T18:40:02.770 回答