关于python:从其他文件导入类时,PyCharm未解析引用

PyCharm unresolved reference when importing class from other file

这个问题让我疯狂。我试图从同一目录中的文件导入一个类。 PyCharm给了我"未解决的参考"错误。 MyClassfile.py中定义。

Unresolved reference

我发现了这些问题:

  • PyCharm中未解决的参考问题
  • Pycharm:打开工作项目时IDE上出现"未解析的引用"错误
  • PyCharm显示有效代码的未解析引用错误
  • 从兄弟子包导入时未解析的引用

我有以下项目结构:

Project structure

我已将src标记为源根...

我设置了"将源根添加到PYTHONPATH":

Add sources option

我试过File - > Invalidate Caches / Restart ..(我甚至重新启动了计算机)。

如果我尝试运行它,我在控制台中收到以下错误:ImportError: cannot import name 'MyClass'

解释器是Ubuntu x64 14.04上的Python 3.4上的virtualenv。

如果我安装并导入任何第三方软件包,它们都能正常运行。

如果我在终端中尝试echo $PYTHONPATH则不返回任何内容(与env | grep PYTHONPATH相同。当我尝试这些时,我有相应的virtualenv活动。

有线索吗?


如果在pack/file.py中定义MyClass,则需要将其导入为:

1
from pack.file import MyClass

请注意,为自己的模块使用Python内置类型(例如file)的名称是个坏主意。


如果你使用python版本3试试这个
从.pack导入myclass,为我工作


是的,如果你使用的是python 3,你应该添加如下内容:

1
from .pack import MyClass

它会工作


以下步骤解决了我的问题:

  • 所有目录至少需要一个空白__init__.py文件
  • 将所有目录标记为源根(根据以前的海报说明)