我有一个自定义的Python库(“ common ”),该库正在从多个Python项目中导入和使用。
该中央库具有以下结构:
label.configure(background='yellow')
label.configure(foreground='red')
我们的自定义库位于/common
/__init__.py
/wrapper.py
/util
/__init__.py
/misc.py
的中央位置,因此在我的Python项目中,我有一个/data/Development/Python
文件,以便包含我们的lib:
.env
那很好,例如,我可以做类似的事情:
PYTHONPATH="/data/Development/Python"
但是,现在我想利用from common.util import misc
中代码中的MyClass
中的类common/wrapper.py
。因此,我在common/util/misc.py
中尝试了以下导入:
misc.py
但这会导致以下错误:
from ..wrapper import MyClass
有什么想法我在这里做错了吗?
PS:当我改为使用Exception has occurred: ImportError
cannot import name 'MyClass'
并从代码中使用from .. import wrapper
时,它可以正常工作。那有意义吗?
答案 0 :(得分:1)
正在寻找wrapper
,否则您将收到另一个错误:
>>> from wibble import myclass
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'wibble'
因此,看来wrapper
不包含MyClass
。错字?
答案 1 :(得分:0)
“但是,现在我想从common / util / misc.py中的代码中使用common / wrapper.py中的MyClass类。因此,我在misc.py中尝试了以下导入:”
如果您执行export PYTHONPATH=~/common
要导入MyClass,您将执行以下操作:
from wrapper import MyClass
由于已将common添加到根文件夹,因此utils已在您的路径中,因为它位于您的根文件夹中。
类似地,如果您想从包装器导入,则将执行from utils.misc import ThisClass
,因为utils.misc
已经在根文件夹common
中