gpt4 book ai didi

python - PyCharm 给出 "unresolved reference"消息,但可以运行代码

转载 作者:行者123 更新时间:2023-12-01 06:34:51 26 4
gpt4 key购买 nike

我正在运行 PyCharm 2019.2.5 和一个玩具示例。我有以下目录结构:

├── main.py
├── a_package
│ ├── a_module.py

我的a_module.py文件看起来像这样:

class a_class:

def __init__(self):
self.a_variable = 5

还有我的main.py文件看起来像这样:

from a_package import a_module

x = a_module.a_class()
print(x.a_variable)

正在运行main.py输出5 。这正如预期的那样。不过,我对这一切有几个问题。

1) 在 main.py ,在行 from a_package import a_module ,两者 a_packagea_module PyCharm 中下方有一条红线。将鼠标悬停在其上会显示“未解析的引用‘a_package’”和“未解析的引用‘a_module’”。为什么会发生这种情况? PyCharm 显然能够找到这些文件,因为代码运行正常。

我还尝试添加目录 a_package到“设置 -> 项目 -> 项目结构”中的“源”。不过,这并不影响任何事情。 PyCharm 仍然给我一条消息,说它找不到这些引用。根据有关源根的 PyCharm 文档,“这些根包含实际的源文件和资源。PyCharm 使用源根作为解析导入的起点。”因此,即使将此目录添加到源根目录后,它仍然给我这个错误/警告,这很奇怪。为什么会发生这种情况?

2) 我经常看到与上面类似的结构,但有一个空的 __init__文件如下:

├── main.py
├── a_package
│ ├── __init__.py
│ ├── a_module.py

我的理解是,这使得 a_package一个实际的 Python 包,而之前它只是一个包含 Python 文件的目录。但为什么要这样做呢?为什么我不能像原来那样拥有它,而不需要 __init__文件,然后像上面那样导入模块?

最佳答案

1)当PyCharm的警告bug(虽然不常见)时,您可以通过剪切代码然后粘贴来修复它。您也可以尝试重新启动PyCharm。

2)

My understanding is that this makes a_package an actual Python package, whereas before it is just a directory containing Python files

这一点我同意你的观点。

我可以在没有 __init__ 文件的情况下导入模块,所以你也应该可以。

关于python - PyCharm 给出 "unresolved reference"消息,但可以运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59724781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com