如何导入位于上面两个目录和下面一个目录中的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希望用粗体和斜体字为你写一行“始终努力使用绝对进口!”:)@亚当,为什么不直接编辑你的答案,然后加粗+意大利语;-)