首页 > 解决方案 > Python打包:了解根文件夹,从包文件中导入,

问题描述

我想更好地了解在模块中导入是如何工作的,以及如何在我的代码分析中删除错误条目。

我有一个包结构

/packagename
├─ /src
    ├─ /utils
    |    ├─ __init__.py
    |    └─ utils.py
    ├─ __init__.py
    ├─ main.py

在我的main.py文件中,第一行之一是

在此处输入图像描述

你注意到 PyCharm 的代码分析找不到utils文件夹的地方。但是,当运行/调试到这一行时,它执行没有问题:

尽管 IDE 代码分析错误,import 仍无错误地执行

我发现在文件夹前面放一个点可以消除代码分析错误:

调试器设置

但最终导致

ImportError: attempted relative import with no known parent package

执行代码时。以下是调试设置:

这些设置是否符合最佳实践 python 标准?

TLDR;东西之前没有点utils,但我想了解如何修复错误。谢谢!

标签: pandasdebuggingimportpackage

解决方案


绝对导入使用项目根文件夹中的完整路径指定要导入的资源。

  • 例子:
from package1 import module1
from package1.module2 import function1

相对导入指定要导入的资源相对于当前位置——即导入语句所在的位置。

  • 例子:
from .some_module import some_class
from ..some_package import some_function
  • 我的建议:使用绝对导入方法。

您首先在项目根目录中键入路径。


推荐阅读