如何导入位于上面两个目录和下面一个目录中的Python类?

如何导入位于上面两个目录和下面一个目录中的Python类?,python,file,class,python-2.7,python-3.x,Python,File,Class,Python 2.7,Python 3.x,如何从customer\u helper\u test.py导入customer\u helper.py中的CustomerHelper类?有可能吗?我使用了来自..helpers..tests..app.helpers.customer\u helper import CustomerHelper的,但它的语法无效 以下是组织的文件夹: program/ app/ helpers/ customer_helper.py _

如何从
customer\u helper\u test.py
导入
customer\u helper.py
中的CustomerHelper类?有可能吗?我使用了来自..helpers..tests..app.helpers.customer\u helper import CustomerHelper的
,但它的语法无效

以下是组织的文件夹:

program/
    app/
        helpers/
            customer_helper.py
            __init__.py
    __init__.py
    tests/
        helpers/
            customer_helper_test.py
            __init__.py
        __init__.py
    __init__.py

提前谢谢

始终努力使用绝对进口

from program.app.helpers.customer_helper import CustomerHelper
如果出于某种原因你绝对不能,那么

from ...app.helpers.customer_helper import CustomerHelper

请注意,
app
无论如何都必须是一个包。

始终努力使用绝对导入

from program.app.helpers.customer_helper import CustomerHelper
如果出于某种原因你绝对不能,那么

from ...app.helpers.customer_helper import CustomerHelper

请注意,
app
无论如何都必须是一个包。

两者都不起作用。第一个解决方案引发了
导入错误:没有名为program.app.helpers.customer\u helper的模块
第二个解决方案引发了
值错误:试图将realtive导入到顶级软件包之外。
@JohannGomes第一个解决方案要求
程序
位于您的
PYTHONPATH
中。第二个问题是为什么不应该使用相对导入!它将失败,这取决于您从何处运行。在这种情况下,您需要在项目根
program/
处,而不是更深的地方。现在它起作用了。我深陷于
程序/测试
,这就是它不起作用的原因。谢谢你,亚当。@JohannGomes希望用粗体和斜体字为你写一行“始终努力使用绝对进口!”:)@亚当,为什么不直接编辑你的答案,然后加粗+意大利语;-)两者都不起作用。第一个解决方案引发了
导入错误:没有名为program.app.helpers.customer\u helper的模块
第二个解决方案引发了
值错误:试图将realtive导入到顶级软件包之外。
@JohannGomes第一个解决方案要求
程序
位于您的
PYTHONPATH
中。第二个问题是为什么不应该使用相对导入!它将失败,这取决于您从何处运行。在这种情况下,您需要在项目根
program/
处,而不是更深的地方。现在它起作用了。我深陷于
程序/测试
,这就是它不起作用的原因。谢谢你,亚当。@JohannGomes希望用粗体和斜体字为你写一行“始终努力使用绝对进口!”:)@亚当,为什么不直接编辑你的答案,然后加粗+意大利语;-)