如何构建我的 python 小框架

How to structure my little python framework

我编写了一组简单的 python3 文件,用于在 32 位平台上模拟一小组 mongodb 功能。我启动了 PyCharm 并整理了一个如下所示的目录:

minu/
    client.py
    database.py
    collection.py
    test_client.py
    test_database.py
    test_client.py

我的导入很简单。例如,client.py 顶部有以下内容:

from collection import Collection

基本上client有Clientclass,collection有Collectionclass,database有Databaseclass。不太难。

只要我 cd 进入 minu 目录,我就可以启动 python3 解释器并执行以下操作:

>>> from client import Client
>>> c = Client(pathstring='something')

一切正常。我也可以 运行 test_files,它们使用相同类型的导入。

我想将它模块化,这样我就可以将它用于另一个项目,只需将 minu 目录放在我的应用程序的 .py 文件旁边,然后一切正常。但是,当我这样做并且从另一个目录 运行ning python3 时,本地导入不起作用。我在 minu 目录中放置了一个空的 init.py。这样我就可以 import minu。但是其他人坏了。我尝试使用 from .collection import Collection(添加点)之类的东西,但后来我不能像以前那样在原始目录中使用 运行 东西了。 simple/right 的方法是什么?

我和 Google 博士一起四处看了看,但是 none 的例子确实很清楚,请随时指出我遗漏的那个

在此文件中 ...minu/__init__.py 导入您希望对外公开的子模块。

如果__init__.py文件包含以下行,并且client.py文件有一个变量foo.

import client
import collection
import database

然后在 minu 目录之上,以下将起作用:

from minu.client import foo