"ImportError: No module named - Python" 是一个Python错误提示,意思是无法导入指定的模块。

9 浏览
0 Comments

"ImportError: No module named - Python" 是一个Python错误提示,意思是无法导入指定的模块。

我有一个Python应用程序,其目录结构如下:

src
 |
 +---- main
 |
 +---- util
 |
 +---- gen_py
         |
         +---- lib

main包中,我有一个名为MyServer.py的Python模块,其中有一个类似如下的导入语句:

from gen_py.lib import MyService

为了使这条语句工作,我在MyServer.py的开头放置了以下行:

import sys
sys.path.append('../gen_py/lib')

当我在终端中运行MyServer.py时,我遇到了以下错误:

ImportError:找不到gen_py.lib模块

我在这里缺什么?

admin 更改状态以发布 2023年5月24日
0
0 Comments

为了让Python模块导入工作,必须把“src”添加到路径中,而不是“gen_py / lib”。

当处理像import gen_py.lib这样的导入时,它会查找一个名为gen_py的模块,然后查找一个名为lib的子模块。

由于模块gen_py不会在“../gen_py/lib”中(而是在“..”中),您添加的路径将对导入过程没有任何帮助。

根据你在哪里运行它,尝试将相对路径添加到“src”文件夹。也许是sys.path.append('..')。您也可能会在直接进入src文件夹的情况下通过相对路径运行脚本,例如python main/MyServer.py

0
0 Comments

你对sys.path的修改假定当前的工作目录总是在main/下。然而实际情况并非如此。相反,只需将父目录添加到sys.path中:

import sys
import os.path
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import gen_py.lib

不要忘记在gen_py和lib中包含一个__init__.py文件,否则它们将不被识别为Python模块。

0