我有一个具有以下目录结构的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的模块
我在这里想念的是什么?
您对的修改sys.path假设当前工作目录始终在中main/。不是这种情况。相反,只需将父目录添加到sys.path:
sys.path
main/
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模块。
__init__.py