Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Intellij idea赢得';无法识别python 3中本地类的导入_Python_Python 3.x_Intellij Idea_Import - Fatal编程技术网

Intellij idea赢得';无法识别python 3中本地类的导入

Intellij idea赢得';无法识别python 3中本地类的导入,python,python-3.x,intellij-idea,import,Python,Python 3.x,Intellij Idea,Import,我有一个python3脚本script.py,我想在其中实例化一个在clazz.py中定义的类Foobar。但是,当我尝试导入时,我会得到: $ python3 script.py ... SystemError: Parent module '' not loaded, cannot perform relative import 以下是我的文件结构: python_import/ ├── __init__.py ├── clazz.py └── script.py clazz.py: c

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

$ python3 script.py
...
SystemError: Parent module '' not loaded, cannot perform relative import
以下是我的文件结构:

python_import/
├── __init__.py
├── clazz.py
└── script.py
clazz.py:

class Foobar():
    def __init__(self):
        print("initialized a foobar")
script.py:

from .clazz import Foobar
foobar = Foobar()
如果我在
导入
中去掉
,它运行良好;但是,如果我这样做,我的IDE(Intellij IDEA)红色会在导入下加下划线,并且不会自动完成任何操作。我相信在python3中包含
是正确的,Intellij似乎很喜欢它,那么为什么我的程序在我删除它之前不能运行呢

我读过、和


我怀疑这可能与virtualenv有关,但a)我不明白为什么工作目录不会是PYTHONPATH的一部分,b)我不确定如何在virtualenv中更改它-Intellij为我设置它。

您的IDE喜欢
的原因是它知道您的脚本在包中
python\u import/
,但当您通过命令行运行它时,解释器对包一无所知,所以相对导入将不起作用

为了消除“未解析参考”的红线错误,请参阅,它有一步一步的完美说明