ModuleNotFound导入一个模块时出错,该模块本身正在导入另一个模块

2024-06-01 05:35:30 发布

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

文件结构:

AppFolder/
  |
  |-- main.py
  |
  |-- Google\
            |
            |-- client.py
            |
            |-- synchronization.py

在我的main.py中,我试图导入synchronization.py。在synchronization.py中,我正在导入client.py

我得到错误ModuleNotFoundError: No module named 'client',我的文件配置如下:

main.py

import Google.synchronization as googleCalendar

def main():
    googleCalendar.getEvents()


if __name__ == '__main__':
    main()

同步.py

import client

def main():
    """Connects the application with a google API"""
    global service
    service = client.main()

def getEvents():
    return service.events().list(calendarId = 'primary')

if __name__ == '__main__':
    main()

其他人也有类似的issue,我尝试了from Google.synchronization import *from . import synchronization 等多种方法,但都没有改变

“解决”该问题的唯一方法是将导入放入if __name__ == '__main__':main.pysynchronization中,如下所示:

同步.py

if __name__ == '__main__':
    import client
    main()

但是现在,当我运行main.py时,我得到了错误:NameError: name 'service' is not defined。我不知道如何修复这个新问题

是否有其他方法可以导入我的文件以缓解这两个问题?或者用另一种方法创建我的变量service

提前谢谢


Tags: 文件方法namepyimportclientifmain
2条回答

尝试以以下方式导入:

from .client import main as client_main

试一试

from .import client

def main():
    """Connects the application with a google API"""
    service = client.main()
    return service

def getEvents():
    return main().events().list(calendarId = 'primary')

相关问题 更多 >