小编典典

ImportError:未命名模块-Python

python

我有一个具有以下目录结构的python应用程序:

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

在包 main中 ,我有一个名为 MyServer.py 的python模块,该模块具有如下的import语句:

from gen_py.lib import MyService

为了使该语句起作用,我将以下行放在 MyServer.py 的开头:

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

在终端中运行MyServer.py时,出现以下错误:

ImportError:没有名为gen_py.lib的模块

我在这里想念的是什么?


阅读 219

收藏
2020-12-20

共1个答案

小编典典

您对的修改sys.path假设当前工作目录始终在中main/。不是这种情况。相反,只需将父目录添加到sys.path

import sys
import os.path

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

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

2020-12-20