当前位置: 首页 > 面试题库 >

ImportError:未命名模块-Python

裴展
2023-03-14
问题内容

我有一个具有以下目录结构的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

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模块。



 类似资料:
  • 问题内容: 我知道这个问题已经被问过多次了。我已经阅读了所有内容,但无法解决问题。以下是我的目录结构。 在main.py中,我将导入以下内容。 当我在Windows中执行代码时,它工作得很好。但是在Linux中,出现以下错误。 我还阅读了有关模块和包的官方python文档。 问题答案: 您的包裹结构还可以。您的导入声明很好。唯一缺少的是该软件包在中是可见的,该位置是可以解析import语句的位置列

  • 问题内容: Python安装在本地目录中。 我的目录树如下所示: 我的代码在这里: 要运行该示例,我编写,并且在代码中有: 我得到了错误: 我已经检查过了,那里有目录。另外,我在文件夹中有该文件,以向指示这是一个软件包。我在示例目录中也有一个。 我不知道为什么Python在时找不到文件。有任何想法吗?可以是权限问题吗?我需要一些执行许可吗? 问题答案: 根据你对orip帖子的评论,我想这是发生了什

  • 问题内容: 我是这个Python世界的新手(仅1周)。我尝试安装django-mssql,但是当我尝试导入库(使用)时,出现以下错误消息: 我试图寻找那个图书馆而没有成功。 你们能指出我正确的方向吗? 问题答案: 您缺少包裹。它带有ActivePython,但您可以将它作为pywin32的一部分单独在GitHub(以前在SourceForge上)上获得。 您也可以简单地使用:

  • 问题内容: 我已经使用命令安装了redis,但是当我运行Python程序时收到此错误: 知道发生了什么问题还是我也应该安装其他软件包?我正在使用Ubuntu 13.04,并且具有Python 2.7。 问题答案: 要安装redis-py,只需: 或者(您确实应该使用点子): 或从来源: 入门 详细信息:https : //pypi.python.org/pypi/redis

  • 问题内容: 由于某种原因,我不能使用or模块。在python shell中运行以下命令后 要么 我得到这个错误 ModuleNotFoundError:没有名为“ Tkinter”的模块 要么 ModuleNotFoundError:没有名为“ tkinter”的模块 可能是什么原因,我们如何解决呢? 问题答案: 您可能需要使用以下一种(或类似的方式)安装它: 您也可以针对python 3.7提及