我写了一组简单的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
基本上,客户端有一个客户端类,集合有一个集合类,数据库有一个数据库类。不太强硬。
只要我cd
进入minu
目录,我就可以启动python3解释器并执行以下操作:
>>> from client import Client
>>> c = Client(pathstring='something')
一切都很好。我也可以运行test_files,它们使用相同的导入类型。
我想将其模块化,因此我可以在另一个项目中使用它,只需将 minu 目录放在我的应用程序的 .py 文件旁边,就可以让一切正常。但是,当我这样做并从另一个目录运行python3时,本地导入不起作用。我在 minu 目录中放置了一个空的 init.py。这样我就可以import minu
了.但其他人都破产了。我尝试使用诸如from .collection import Collection
之类的东西(添加了点),但是我不能再像以前那样在原始目录中运行内容了。什么是简单/正确的方法?
和谷歌博士一起环顾四周,但没有一个例子真正很好地阐明它,请随时指出我错过的那个
在此文件中...minu/__init__.py
导入要在外部公开的子模块。
如果__init__.py
文件包含以下行,并且client.py
文件具有变量foo
。
import client
import collection
import database
然后从 minu 目录上方,以下内容将起作用:
from minu.client import foo