当前位置: 首页 > 知识库问答 >
问题:

Intellij idea无法识别python 3中本地类的导入[重复]

农鸿德
2023-03-14

我有一个python3脚本script.py,我想在其中实例化一个类Foobar,它是在clazz.py中定义的。但是,当我尝试导入时,我得到:

$ python3 script.py
...
SystemError: Parent module '' not loaded, cannot perform relative import
python_import/
├── __init__.py
├── clazz.py
└── script.py
class Foobar():
    def __init__(self):
        print("initialized a foobar")

script.py:

from .clazz import Foobar
foobar = Foobar()

如果我去掉导入中的.,它就可以正常运行;但是,如果我这样做了,我的IDE(Intellij IDEA)会在导入中加上红色下划线,并且不会自动完成任何内容。我相信在python3中包含.是正确的,而且Intellij似乎也喜欢它,那么为什么我的程序不能运行,除非我删除它呢?

我阅读了http://www.diveintopython3.net/porting-code-to-python-3-with-2to3.html#import,http://Python.readthedocs.org/en/latest/reference/import.html,如何在同一目录或子目录中导入类?,Python 3中的相对导入和Python 3中的相对导入不起作用。

共有1个答案

楚苏燕
2023-03-14

IDE喜欢.的原因是它知道脚本在packagepython_import/中,但是当您通过命令行运行它时,解释器对package一无所知,因此相对导入无法工作。

为了消除“未解决引用”的红线错误,请参见PyCharm中的未解决引用问题,它有一步一步的完美说明。

 类似资料:
  • 我在IntellijIDEA中有一个项目是用Maven创建的。然后我在pom.xml文件中指定了一组依赖项和外部存储库。 如果我执行“mvn install”,那么项目在命令行上构建得很好。但是,当我打开IDE中的任何代码文件时,它会说Maven依赖项处理的所有类都无法识别--如果我从未将所需的JAR添加到构建路径中,这对于一个正常的项目来说是一样的。 我知道在我的Eclipse Maven项目(

  • 我想使用JavaFX作为我的游戏的开始屏幕。 然而,由于某些原因,导入的“javafx”似乎无法识别。 起初,我(出于某种奇怪的原因)认为我需要e(fx)clipse,但是我成功安装了它,它并没有解决问题。我在互联网上没有找到其他可以解决这个问题的东西。 我需要导入javafx作为库还是什么?如果是,在哪里? 谢谢

  • 问题内容: jaxb插件有很大的问题。我有一个项目A,其中有src / main / resources / xsd / common.xsd文件。在这个项目中,我使用cxf-xjc-plugin生成Java类。我在src / main / resources / META- INF下也有我的Episod文件,名为sun-jaxb.episode 接下来,我有项目B,该项目对项目A具有Maven依

  • 问题内容: 实际上,我的项目有单元测试。所有这些都在最近配置中。我需要在中添加检测测试。为此,我在中添加了espresso依赖项。 之后,我选择了Build Variants-> Test Artifact-> Android Instrumentation Tests。 但是,当我开始编码时,没有一个依赖项被识别: “无法解析符号onView”,“无法解析符号ViewInteraction”等…

  • 我有一个使用WebPack的项目设置。我有几个不同目录的别名: 如果我将导入更改为: 有没有什么方法可以让WebStorm识别那些index.ts文件,而不是真正将它们写入导入中呢?

  • 我有一个简单的Flutter应用程序。 如果我将类移动到另一个文件中,例如custom_card.dart,然后执行,我会得到错误消息:。如果类留在main.dart中,那么一切都可以工作。我错过了什么?