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