pandas - Python打包:了解根文件夹,从包文件中导入,
问题描述
我想更好地了解在模块中导入是如何工作的,以及如何在我的代码分析中删除错误条目。
我有一个包结构
/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
,但我想了解如何修复错误。谢谢!
解决方案
绝对导入使用项目根文件夹中的完整路径指定要导入的资源。
- 例子:
from package1 import module1
from package1.module2 import function1
相对导入指定要导入的资源相对于当前位置——即导入语句所在的位置。
- 例子:
from .some_module import some_class
from ..some_package import some_function
- 我的建议:使用绝对导入方法。
您首先在项目根目录中键入路径。
推荐阅读
- c# - 如何在没有“另存为”对话框的情况下从 ASP.NET 下载带有响应对象的文件?
- typescript - 沿圆圈排列圆圈而不重叠
- ios - 使用 CPNowPlayingImageButton 时,CarPlay NowPlaying 屏幕在深色外观上显示错误图像
- java - Java mp4parser 输出为空
- wpf - 如何在为 ContentPresenter(或 ContentControl)加载 DataTemplate 时发出通知
- javascript - 即使我在函数中将它们设置为 true,某些变量也永远不会变为 true
- python - Python:使用继承从脚本B访问脚本A中函数中的局部变量
- javascript - 复制谷歌驱动器文件夹
- javascript - 如何调用动态函数 .testnet() 或 .mainnet() JavaScript
- c++ - 如何根据文件自动生成唯一的 c++ 类