我正在尝试将遗留项目导入pycharm以进行调试。 目录结构如下所示:
顶级文件夹--->文件夹一
顶级文件夹--->文件夹二
问题是子文件夹中的程序使用:
import top
from top import module
Pycharm返回错误:“没有名为top的模块”
我该如何解决这个问题?
答案 0 :(得分:12)
首先要确保做的是游戏所说的,你需要确保代表包的每个文件夹都是通过放置一个__init__.py
文件来完成的,该文件是一个空的python文件,名为{{1}告诉解释器该文件夹是一个python包。
要寻找的第二件事是,如果PyCharm不知道该目录,pycharm喜欢抱怨导入的代码。进入项目解释器配置并转到路径并添加不在项目中或直接在解释器下的路径引用。
要添加的另一件事是,通过右键单击代表根目录的文件夹并单击“将目录标记为...”来设置项目代码的源根目录。 '源根'。
答案 1 :(得分:1)
我遇到了同样的问题,但这不是由于缺少 init .py文件造成的。 原因是,项目中有两个相同的名称模块,因此PyCharm不知道如何导入。奇怪的是PyCharm只在运行时报告这个错误。
我的项目文件:
source root1
|-- moduleA
|-- __init__.py
|-- A.py
source root2
|-- moduleA
|-- __init__.py
|-- B.py
实际上,源root1是我的代码,源root2是我的测试代码。
因此解决方案是更改测试模块名称。
source root1
|-- moduleA
|-- __init__.py
|-- A.py
source root2
|-- testmoduleA
|-- __init__.py
|-- B.py