如何引用另一文件夹中的类 - python

1 投票
2 回答
5308 浏览
提问于 2025-04-16 21:56

我有一个Python文件,位置在'lib/lib_add_participant.py',里面定义了一个类。

现在我想在另一个文件'call_participant.py'中调用这个类的函数。

我试着用这段代码 from lib/lib_add_participant.py import LibAddParticipant 来导入。

但是没有成功。请帮我纠正一下(我之前是用Ruby的)。

2 个回答

0

假设 lib 文件夹在你 PYTHONPATH 列出的目录里,可以试试下面的代码:

from lib.lib_add_participant import LibAddParticipant
5

如果你的文件结构是这样的:

myproject/
    __init__.py
    call_participant.py
    lib/
        __init__.py
        lib_add_participant.py

在这种情况下,你的 __init__.py 文件可以是 空的,如果你愿意的话(或者它们可以定义很多东西——想了解更多,可以看看 Alex Martelli 的这个精彩回答)。

然后你可以通过以下方式添加它:

from .lib.lib_add_participant import LibAddParticipant

不过,如果 call_participant.py 是你的最终脚本,那么这个方法就不行了,因为你“不能在非包中进行相对导入”,解释器会告诉你这一点。在这种情况下,我认为最好的办法是把 lib 变成你 Python 路径中的一个包(可以放在你的 site-packages 目录中,或者放在 pythonpath 环境变量所指的路径中)。

撰写回答