Pycharm 中未解析的用于在父目录中导入模块的参考

问题描述 投票:0回答:2

有一个类似的问题,但不完全是我遇到的问题,所以我们开始:

我的目录结构:
├── PycharmProjects
____ ├── 我的项目
_______ ├── main.py
_______ ├── ...
___ ├── 工具
_______ ├── web.py

导入我使用的 web.py 函数

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from Tools.web import *

它在 Pycharm 和 Idle 中都可以工作,但是 Pycharm 中的代码分析显示 Tools 及其函数为“未解析的引用”。我该如何解决这个问题?

我已经尝试过:
1.各级各文件夹下的init.py。
2. 将tools文件夹添加到项目结构中,将其标记为源文件夹(蓝色)

python ide pycharm python-idle
2个回答
2
投票

我建议将以下内容翻译成您的术语:将一个名为 my_pycharm.pth 的文件放入 /Lib/site-packages 中,并使用以下行。

 <drive>:/path/to/PycharmProjects

这本质上是将 /PycharmProjects 的 contents 附加到 /site-packages 的内容中。换句话说,当 import 在 /site-packages 中搜索模块时,它也会搜索 /PycharmProjects。 (我对每个已安装的 Python 版本都执行此操作。)

然后通过添加

__init__.py
使 /PycharmProjects 中的每个项目成为适当的包。

例如,现在 main.py 可以有

 from Tools import web

它应该可以工作。

如果您与其他人共享您的代码,他们只需将其放入他们的站点包中。


1
投票

对于将来遇到此问题的任何人,这里概述了一个更简单的答案:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/115000646984--Solved-Warnings-import-local-package-Unresolved-references-inspection

在底部:

  1. 转到设置“Ctrl+Alt+S”并选择下一个选项:

  2. 在我的例子中选择要转换为Python源的文件夹“./src”并点击源标签(标记为..),然后将其添加到 左侧面板还点击“应用”或“确定”。

© www.soinside.com 2019 - 2024. All rights reserved.