pycharm导入本地文件报错,如何解决?

python版本3.6
问题:在pycharm中在同级目录下使用from ... import ... 导入本地文件(这个操作是放在整个py文件的最上面),提示“ImportError:cannot import name xxxx”。但是如果我将from ... import ... 导入本地文件操作放在函数中,就不会报错。这是什么原因?

from xxx import xxxx

def func():
    使用上面的模块

运行之后报错:ImportError:cannot import name xxxx

```python
def func():
  from xxx import xxxx

  使用导入的模块,运行函数成功

```

我猜应该是目录结构有问题,你这么一个截图,我看不出来

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7709701
  • 这篇博客你也可以参考下:pycharm同一目录下无法import已经存在的.py文件
  • 您还可以看一下 朱志超老师的Python高级进阶课程中的 Pycharm常用的操作及配置小节, 巩固相关知识点
  • 除此之外, 这篇博客: 【Python】Python的模块与包和pycharm 引入爆红中的 import 和 from … import 的区别 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

    import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
    from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径。

    所以
    from…import *:是把一个模块中所有函数都导入进来; 注:相当于:相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径。
    结论:
    from…import *语句与import区别在于:
    import 导入模块,每次使用模块中的函数都要是定是哪个模块。
    from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^