【问题标题】:Pycharm python interpreter incorrectly showing errorsPycharm python解释器错误地显示错误
【发布时间】:2019-08-30 12:34:00
【问题描述】:

我正在将一个 .py 文件导入另一个 from snow_get import *。 Pycharm 给了我一个未解决的参考错误,但是当我实际运行它时它工作得很好。在我的文件夹中有和没有 init.py 的情况下,我都会收到此错误。

我确实注意到 Python 版本是 3.7(~/anaconda3/bin/python),而项目解释器是 3.6(也是 ~/anaconda3/bin/python)。但我无法解决这个问题。

snow_get.py

import pysnow
from pprint import pprint

def foo():
    print('bar')

snow_post.py

from snow_get import *

foo()

打印以下内容:

/Users/hermanvanderveer/anaconda3/bin/python "/Users/hermanvanderveer/Code/RPA/Python/Coca cola/snow_post.py"
bar

Process finished with exit code 0

所以它工作得很好。但是为什么 Pycharm 会给我未解决的参考错误呢?

【问题讨论】:

标签: python pycharm


【解决方案1】:

因为脚本是在控制台中执行的,所以它可以工作:

python -m script.py.

PyCharm 虽然根据标准“智能”检测错误。导入应作为带有“。”的相对导入来完成。符号,因为它是你的脚本。

此外,您可以在设置 -> 编辑器 -> 检查中更改所有这些错误标记

更新:

我的秘诀是:

try:
    from .data_processing import DataProcessor
except ImportError as e:
    from data_processing import DataProcessor

我将这两个版本都用于运行代码并加载库。这仅适用于本地模块和包。

【讨论】:

  • 哇,from .snow_get import * 解决了!谢谢!奇怪的是,我发现的任何导入解释中都没有提到这一点。
  • 等等,现在它没有显示任何错误,但是如果我尝试运行它,它就不起作用...ModuleNotFoundError: No module named '__main__.snow_get'; '__main__' is not a package
  • 没错。这就是为什么你不需要使用相对进口。但是 PyCharm 会将其显示为错误,但它仍然会运行。忽略红色下划线。学会忍受它:-D。我已经用我的解决方案更新了答案
  • 谢谢!这是一个很好的解决方法!这很丑陋,但至少我的 IDE 再次帮助了我。
猜你喜欢
  • 1970-01-01
  • 2012-04-16
  • 2020-11-04
  • 2017-11-24
  • 2017-03-06
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
相关资源
最近更新 更多