我想更好地了解模块内导入的工作方式,以及如何在代码分析中删除错误条目。
我有一个包裹结构
/packagename
├─ /src
├─ /utils
| ├─ __init__.py
| └─ utils.py
├─ __init__.py
├─ main.py
在我的main.py
文件中,第一行读为
您注意到PyCharm的代码分析找不到utils
文件夹。但是,在运行/调试到此行时,它可以毫无问题地执行:
我发现在文件夹前面放一个点可消除代码分析错误:
但最终导致
ImportError: attempted relative import with no known parent package
执行代码时。这是调试设置:
这些设置是否符合最佳实践python标准?
TLDR;东西在utils
之前没有圆点,但我想了解如何解决该错误。
谢谢!
答案 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
首先在项目根目录中键入路径。