python - 相对导入模块
问题描述
对于一个项目:
package\
│
└───┐ package\
│
├──── __init__.py
└───┐ subpackage\
│
├──── __init__.py
└──── spam.py
我可以通过以下方式subpackage\__init__.py
导入spam
:
from package.subpackage.spam import eggs, beans
...或者...
from .spam import eggs, beans
后者对于更改 的名称package
很有效,这在我当前的早期开发项目案例中很有用。
当我不想实际导出任何内容时,就会出现问题spam
,我只想让它执行其初始化逻辑。
例如,以下内容不起作用。
import .spam
(我正在使用PyCharm
,它识别错误,如果这是相关的。)
在这种情况下是否有替代或标准的导入方式?
解决方案
在python中导入如下:
from <path-to-file> import <file-name-or-class/method/variable>
因此,当您编写import .spam
它时,它会寻找.spam.py
手段而不是寻找spam.py
它正在寻找,.spam.py
因此您可以正确导入它,如下所示:
from . import spam
推荐阅读
- c# - 当我按下按钮时,如何制作带有滚动条的标签之类的东西
- java - 关闭应用程序时如何保存 TextViews?
- php - 此路由不支持 PUT 方法。支持的方法:GET、HEAD。(使用资源)
- java - java.lang.IllegalStateException:设置正文参数时名称为空
- javascript - 如何使用电子释放忽略多个目录和文件
- fts4 - FTS4 索引电话号码
- puppeteer - 如何在 puppeteer 中加载的每个窗口中执行脚本?
- java - 注册表引用了不存在的 Java 运行时环境安装或运行时已损坏错误
- graphql - 使用 Sapper 刷新预加载数据
- mysql - MySQL COUNT 不同总数,其中 ALL/EVERY 加入 = 给定值