从 python 我的模块中的另一个文件夹导入模块函数
Import a module function from another folder in my module in 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 中的函数?
很明显,您正在尝试从另一个文件夹导入。为此,您需要将其打包
您需要在模块文件夹和子文件夹中保存一个空的 __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://docs.python.org/3/tutorial/modules.html#packages
https://python4astronomers.github.io/installation/packages.html
我目前正在构建一个具有如下架构的自定义模块:
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 中的函数?
很明显,您正在尝试从另一个文件夹导入。为此,您需要将其打包
您需要在模块文件夹和子文件夹中保存一个空的 __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://docs.python.org/3/tutorial/modules.html#packages
https://python4astronomers.github.io/installation/packages.html