Pycharm中未解析的引用,用于导入父目录中的模块

时间:2016-08-20 05:38:15

标签: python ide pycharm python-idle

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

我的目录结构:
├──PycharmProjects
  ____├──MyProject
_______├──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.将工具文件夹添加到项目结构,将其标记为源文件夹(蓝色)

2 个答案:

答案 0 :(得分:1)

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

 <drive>:/path/to/PycharmProjects

这实际上将/ PycharmProjects的内容附加到/ site-packages的内容中。换句话说,当导入模块的搜索/站点包时,它还会搜索/ PycharmProjects。 (我为每个已安装的Python版本执行此操作。)

然后通过添加 init .py使/ PycharmProjects中的每个项目成为一个合适的包。

现在,例如,main.py可以有

 from Tools import web

它应该可以正常工作。

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

答案 1 :(得分:0)

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

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”,然后点击Source标签(标记为..),然后将其添加到 左面板上还点击“应用”或“确定”。