【问题标题】:Import directory into pycharm将目录导入pycharm
【发布时间】:2013-08-22 23:58:36
【问题描述】:

我正在尝试将旧项目导入 pycharm 进行调试。 目录结构如下:

顶级文件夹--->文件夹一

顶层文件夹 ---> 文件夹二

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

 import top 
 from top import module  

Pycharm 返回错误:“No module named top”

我该如何解决这个问题?

【问题讨论】:

  • 您的顶层文件夹是否有__init__.py 文件?如果不是,那么它不是一个模块。

标签: python pycharm


【解决方案1】:

首先要确保按照 Games 所说的去做,你需要确保每个代表包的文件夹都是通过放置一个 __init__.py 文件来完成的,该文件是一个完全命名为 __init__.py 的空 python 文件,它告诉解释该文件夹是一个 python 包。

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

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

【讨论】:

  • 有没有办法告诉 PyCharm 在项目中的所有模块/子文件夹中进行搜索?我们有一个非常高大的目录结构,手动将所有文件夹设置为“Sources”真的很困难。
  • 您不必将所有目录设置为源,您只需设置根目录即可。如果您有多个根,您可能会错误地组织您的项目。
【解决方案2】:

我遇到了同样的问题,但不是缺少 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

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 2019-02-12
    • 2020-05-05
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多