【问题标题】:Strange Import Error in PyDev Eclipse for Custom ClassesPyDev Eclipse 中自定义类的奇怪导入错误
【发布时间】:2013-10-28 06:18:20
【问题描述】:

您好,我正在尝试使用 Eclipse 和 PyDev 在 python 中编写程序。我有一个这样的项目结构:

“Root”、“GeneralClasses”和“UserClasses”是包含名为“FileA”、“FileB”和“FileC”的python模块的三个目录,很明显有三个名为“ClassA”、“ClassB”和“ C 类”。

我试图在“FileC”中导入“ClassA”,但出现导入错误。我尝试了多种方法:

  1. import ClassA
  2. from FileA import ClassA
  3. from FileA import *
  4. from GeneralClasses.FileA import ClassA
  5. from GeneralClasses.FileA import *
  6. from Root.GeneralClasses.FileA import ClassA
  7. from Root.GeneralClasses.FileA import *

他们都给了我同样的错误。我不知道如何解决这个问题。如有任何帮助,我将不胜感激。

【问题讨论】:

  • 我应该补充一点,IDE 可以检测到所有的类。我在他们的名字上使用“ctrl + click”,它把我带到了正确的地方。此外,我在所有类的所有文件中都有导入问题;所以似乎IDE的设置有问题,代码运行良好。
  • 它给你的错误是什么?

标签: python eclipse import pydev


【解决方案1】:

我重新创建了您的场景并遇到了同样的问题。 也许您做了与我相同的事情并将您自己的根文件夹放在适当的位置? (我怀疑这是因为 PyDev 称它为 src。) 您需要将 src 文件夹添加到 python 路径中,PyDev 可以方便地为您执行此操作。您只需:File > new > other > PyDev > source folder

更多信息在这里http://pydev.org/manual_101_project_conf2.html

将这些文件放在 src 目录中,导入应该可以正常工作。

祝你好运!

【讨论】:

  • 谢谢@Robin,我将所有子文件夹添加到 python-path 中,现在我可以通过导入文件来访问所有类;喜欢import FileA,然后使用FileA.ClassA
  • 这很好,但尝试让 pydev 仅将根(即 src)文件夹添加到路径中。然后也将搜索所有子目录以查找导入。简单得多。
  • 我试过了。实际上,当我遇到问题时,它就在那里。添加子文件夹解决了这个问题。
【解决方案2】:

您是否在 Eclipse 中使用 PyDev 视图?

如果您在不同的视图中编辑 Python 代码,上下文菜单可以选择创建新的“文件夹”而不是“python 包”。对于文件夹,Eclipse 不会自动生成 init.py 文件。因此,python 解释器不会将该文件夹视为子包。

【讨论】:

    猜你喜欢
    • 2011-09-30
    • 2015-04-09
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多