如何包含另一个文件中的类(在另一个文件夹中) - python

sha*_*jin 1 python class python-3.x

我在“lib/lib_add_participant.py”位置有一个 python 文件。我在该文件中声明了一个类。

现在我想从文件 call_participant.py 调用类函数。

我试过这段代码from lib/lib_add_participant.py import LibAddParticipant

它不起作用。请纠正我(我来自 Ruby)。

Nat*_*ate 5

如果你的文件结构如下:

myproject/
    __init__.py
    call_participant.py
    lib/
        __init__.py
        lib_add_participant.py
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果您愿意,您的__init__.py文件可以为(或者它们可以定义任意数量的内容 -有关更多详细信息,请参阅Alex Martelli 的这个很好的答案。

然后你可以使用添加它

from .lib.lib_add_participant import LibAddParticipant
Run Code Online (Sandbox Code Playgroud)

但是,如果call_participant.py是您的最终脚本,那么这种策略将不起作用,因为正如解释器会告诉您的那样,您“无法在非包中进行相对导入”。在这种情况下,你最好的选择(至少在我看来)是lib在你的 python 路径中创建一个包(在你的 site-packages 目录中,或者在你的环境变量引用的路径中pythonpath)。