ImportError:没有名为-Python的模块怎么处理?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

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

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

在包,我有一个名为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的模块

我在这里错过了什么?

提问于
用户回答回答于

只需将父目录添加到sys.path

import sys
import os.path

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
import gen_py.lib
用户回答回答于

为了使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

扫码关注云+社区

领取腾讯云代金券