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

2024-06-26 00:16:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在构建一个定制模块,其架构如下:

module/
│
├── util/
│   ├── metrics.py
│   └── util.py
│
└── training/
    ├── pretraining.py
    └── training_step.py

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

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

from util.metrics import accuracy

我得到以下错误:

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

如何在pretraining.py中导入函数


Tags: 模块函数frompyimport脚本架构step
2条回答

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

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

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

module/
├── __init__.py
│
├── util/
│   ├──__init__.py
│   ├── metrics.py
│   └── util.py
│
└── training/
    ├──__init__.py
    ├── pretraining.py
    └── training_step.py

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

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

相关问题 更多 >