ModuleNotFoundError: No module named ‘__main__.XX‘;

2022-09-02 21:05:13 浏览数 (1)

python3版本

from .XX.logger import Logger ModuleNotFoundError: No module named '__main__.XX'; '__main__' is not a package

代码语言:javascript复制
from .output.logger import Logger
 
 
from .output.logger import Logger
ModuleNotFoundError: No module named '__main__.output'; '__main__' is not a package

不知道原因

解决办法是不使用当前路径的  .

代码语言:javascript复制
from automationtest_frame.output.logger import Logger

同时

1、把automationtest_frame 的上级路径放到系统path里

2、把autimation_frame的上级目录作为工程目录打开

以下是终极原因****************************************************************************************************************************

接着调查原因明确了,不能简单的这样执行,这样执行的话,模块的名字被变成了__main__

例如

run.py

代码语言:javascript复制
from .dir_2.testfile import TestFile
     
class Run(TestFile):
       def hello(self):
            print("hello")
            self.nothing()

dir_2testfile.py

代码语言:javascript复制
class TestFile():
    def nothing(self):
       return

直接执行run.py就报错了,当前文件方式执行的话,上级目录相对的包名,也变成了__main__

所以必须是run.py以module来执行,例如如下方式

run1.py里,调用run来执行

代码语言:javascript复制
from dirtest.run import Run
Run().hello()

所以使用from的话,还是建议使用本文开始说的结局方案比较好,直接使用相对路径会出现问题

0 人点赞