Python项目中的ModuleNotFoundError

2024-05-08 04:59:29 发布

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

我在Python中有以下项目结构(表示我有n个crawler_upy文件)

project
├── crawlers
│   ├── __init__.py
│   ├── crawler_1.py
│   ├── crawler_2.py
│   ...
│   ├── crawler_n.py
│   └── useful_functions.py
├── main.py
└── __init__.py

我需要将所有爬虫程序从爬虫程序导入主爬虫程序,所以我使用这个

# main.py
from crawlers import crawler_1
from crawlers import crawler_2
...
from crawlers import crawler_n

但是我还需要所有crawler_uupy文件中的useful_functions.py,所以我在每个文件中都使用它

# crawler_.py
import useful_functions

但是当我运行main.py时,当它试图导入爬虫程序1时,我得到了ModuleNotFoundError: No module named 'useful_functions'

所以我尝试了以下方法

# crawler_.py
from crawlers import useful_functions

当我运行main.py时,它就会工作。问题是我可能只想直接运行一个爬虫程序。使用最后一个import语句,我得到ModuleNotFoundError: No module named 'crawlers'。不知道如何解决这个问题,如果代码中有什么东西我应该调整,或者如果我使用的结构是根本错误的(我完全可以调整项目结构)


Tags: 文件项目frompyimport程序initmain
1条回答
网友
1楼 · 发布于 2024-05-08 04:59:29

您可以在crawler_n.py中使用此选项

if __name__ == '__main__':
    import useful_functions
else:
    import crawlers.useful_functions as useful_functions

__name__ == '__main__'检查模块是否被调用或导入,从而相应地进行导入

相关问题 更多 >