Python打包:了解根文件夹,从包文件导入,

时间:2020-10-21 20:29:58

标签: pandas debugging import package

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

我有一个包裹结构

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

在我的main.py文件中,第一行读为

enter image description here

您注意到PyCharm的代码分析找不到utils文件夹。但是,在运行/调试到此行时,它可以毫无问题地执行:

import executes without error, despite IDE code analysis error

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

debugger settings

但最终导致

ImportError: attempted relative import with no known parent package

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

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

TLDR;东西在utils之前没有圆点,但我想了解如何解决该错误。 谢谢!

1 个答案:

答案 0 :(得分:1)

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

  • 示例:
"HTTP /1.1 200 OK\r\nContent-Length: 92\r\nContent-Type: text/html; charset=utf-8\r\n\r\n<!DOCTYPE html><html><head><meta charset=\"utf-8\"></head><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>\r\n"

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

  • 示例:
from package1 import module1
from package1.module2 import function1
  • 我的建议:使用绝对导入方法。

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

相关问题