Python 项目中的 ModuleNotFoundError
ModuleNotFoundError in Python project
我在 Python 中有以下项目结构(...意味着我有 n crawler_.py 个文件)。
project
├── crawlers
│ ├── __init__.py
│ ├── crawler_1.py
│ ├── crawler_2.py
│ ...
│ ├── crawler_n.py
│ └── useful_functions.py
├── main.py
└── __init__.py
我需要将所有爬虫从crawler导入main,所以我用这个
# main.py
from crawlers import crawler_1
from crawlers import crawler_2
...
from crawlers import crawler_n
但我还需要 useful_functions.py
在所有 crawler_.py 文件中,所以我在每个文件中都使用了它。
# crawler_.py
import useful_functions
但是当我 运行 main.py
尝试导入 crawler_1.
时,我得到了 ModuleNotFoundError: No module named 'useful_functions'
所以我尝试了以下
# crawler_.py
from crawlers import useful_functions
它在我 运行 main.py
时有效。问题是我可能只想要 运行 直接 crawler_.py 之一。使用最后一个导入语句,我得到 ModuleNotFoundError: No module named 'crawlers'
。不知道如何解决这个问题,如果我应该调整代码中的某些内容,或者如果我使用的结构从根本上是错误的(我完全可以调整项目结构)。
您可以在 crawler_n.py
中使用它
if __name__ == '__main__':
import useful_functions
else:
import crawlers.useful_functions as useful_functions
__name__ == '__main__'
检查模块是否被调用或导入,从而相应地进行导入。
我在 Python 中有以下项目结构(...意味着我有 n crawler_.py 个文件)。
project
├── crawlers
│ ├── __init__.py
│ ├── crawler_1.py
│ ├── crawler_2.py
│ ...
│ ├── crawler_n.py
│ └── useful_functions.py
├── main.py
└── __init__.py
我需要将所有爬虫从crawler导入main,所以我用这个
# main.py
from crawlers import crawler_1
from crawlers import crawler_2
...
from crawlers import crawler_n
但我还需要 useful_functions.py
在所有 crawler_.py 文件中,所以我在每个文件中都使用了它。
# crawler_.py
import useful_functions
但是当我 运行 main.py
尝试导入 crawler_1.
ModuleNotFoundError: No module named 'useful_functions'
所以我尝试了以下
# crawler_.py
from crawlers import useful_functions
它在我 运行 main.py
时有效。问题是我可能只想要 运行 直接 crawler_.py 之一。使用最后一个导入语句,我得到 ModuleNotFoundError: No module named 'crawlers'
。不知道如何解决这个问题,如果我应该调整代码中的某些内容,或者如果我使用的结构从根本上是错误的(我完全可以调整项目结构)。
您可以在 crawler_n.py
if __name__ == '__main__':
import useful_functions
else:
import crawlers.useful_functions as useful_functions
__name__ == '__main__'
检查模块是否被调用或导入,从而相应地进行导入。