首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python模块中的另一个文件夹导入一个模块函数

从python模块中的另一个文件夹导入一个模块函数
EN

Stack Overflow用户
提问于 2021-06-10 10:02:50
回答 2查看 390关注 0票数 2

我目前正在构建一个具有如下体系结构的自定义模块:

代码语言:javascript
复制
module/
│
├── util/
│   ├── metrics.py
│   └── util.py
│
└── training/
    ├── pretraining.py
    └── training_step.py

在我的pretraining.py脚本中,我需要使用位于util.py中的函数。我不知道如何在pretraining.py中导入它

到目前为止,我尝试了经典:

代码语言:javascript
复制
from util.metrics import accuracy

我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "pretraining.py", line 5, in <module>
    from util.metrics import accuracy
ModuleNotFoundError: No module named 'util'

如何在pretraining.py中导入函数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-06-10 10:34:40

如PCM所示,您必须在每个文件夹中创建一个空的__init__.py文件:

代码语言:javascript
复制
module/
├── __init__.py
│
├── util/
│   ├──__init__.py
│   ├── metrics.py
│   └── util.py
│
└── training/
    ├──__init__.py
    ├── pretraining.py
    └── training_step.py

因此,如果在您的pretraining.py脚本中需要使用位于util/emeics.py中的函数:

代码语言:javascript
复制
from module.util.metrics import accuracy

一些参考资料:

https://github.com/Pierian-Data/Complete-Python-3-Bootcamp/blob/master/06-Modules%20and%20Packages/Useful_Info_Notebook.ipynb

https://docs.python.org/3/tutorial/modules.html#packages

https://python4astronomers.github.io/installation/packages.html

票数 3
EN

Stack Overflow用户

发布于 2021-06-10 10:21:33

显然,您正在尝试从另一个文件夹导入。为此,你需要把它做成一个包裹。

您需要在模块文件夹和子文件夹中保存一个空的__init__.py文件。__init__.py将使它成为一个包,因此您可以使用from util.metrics import accuracy导入它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67918958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档