2013-08-20 53 views
8

我正在尝试导入一个遗留项目到pycharm进行调试。 的目录结构如下:导入目录到pycharm

顶层文件夹--->文件夹一个

顶层文件夹--->文件夹2

的问题是,在子文件夹中的程序使用:

import top 
from top import module 

Pycharm返回错误:“无模块顶部名为”

我怎样才能解决这个问题?

+1

您的顶级文件夹是否有'__init __。py'文件?如果没有,那么它不是一个模块。 –

回答

11

,以确保第一件事是做什么游戏说,你需要确保是代表一个包是通过将一个__init__.py文件,该文件是告诉解释是,恰好名为__init__.py一个空蟒蛇文件中完成的每个文件夹文件夹是一个python包。

要寻找的第二件事是pycharm喜欢抱怨导入的代码,如果PyCharm不知道该目录。进入项目解释器配置并转至路径并添加不在项目中或直接位于解释器下的路径引用。

要添加的另一件事是通过右键单击表示根目录的文件夹并单击“标记目录为...”>“源根目录”来设置项目代码的源根目录。

+0

在我的项目中保存了很多红色标记! –

+0

有没有办法告诉PyCharm在项目中的所有模块/子文件夹中搜索?我们有一个非常高的目录结构,并且将所有文件夹手动设置为“源”非常困难。 – jimtut

+0

您不必将所有目录设置为只需设置根目录的源。如果你有多个根,你可能会错误地组织你的项目。 – BrokenRobot

1

我遇到了同样的问题,但这不是由于缺少init .py文件引起的。 原因是,项目中有两个相同的名称模块,所以PyCharm不知道如何导入。奇怪的是PyCharm只在运行时报告这个错误。

我的项目文件:

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- moduleA 
     |-- __init__.py 
     |-- B.py 

其实,源目录root1是我的代码,源根-2是我的测试代码。

所以解决办法是改变测试模块名称。

source root1 
    |-- moduleA 
     |-- __init__.py 
     |-- A.py 

source root2 
    |-- testmoduleA 
     |-- __init__.py 
     |-- B.py