python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python ImportError:模块引入异常

python之ImportError:模块引入异常问题

作者:Imobs

这篇文章主要介绍了python之ImportError:模块引入异常问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

摘要

为什么要写这篇文章?

我们在使用 pycharm 编程经常会遇到 ImportError:模块引入异常的情况;

原因:

模块文件不在运行的路径上,即PyCharm IDE支持文件跳转,但是当文件执行时,找不到模块。

就会抛出 ImportError;

解决方法

Step1:使用 sys.path.append 引入源路径

如果是在 Terminal 执行,通过 sys.path.append 添加源路径

在模块文件顶部,引入源目录,源路径下的所有模块文件都可以被不加前缀直接import

import os
import sys
BASE_PATH = os.path.split(os.path.dirname(os.path.abspath(__file__)))[0]
if BASE_PATH not in sys.path:
    sys.path.append(BASE_PATH)
# print(BASE_PATH)  # 打印源路径

Step2:Pycharm IDE - Sources Root

如果使用 Pycharm IDE ,模块包下有多层目录,直接执行,可能就会抛出引入路径错误

(1)在pycharm中设置source路径

File–>setting–>project:项目名–>project structure

将放package的文件夹设置为source,这样import的模块类等,就是通过这些source文件夹作为根路径来查找,也就是在这些source文件夹中查找import的东西。

(2)清除缓存并重启

(3)设置源目录(注意设置的是哪个目录,不能选择项目根目录)

package 右键 -> Mark Directory as -> Sources Root

Step 3:unresolved reference

导入第三方模块时,比如:

from flask import Flask

此时的Flask 下方是有红色波浪线(如下图)的,我这里确定已经安装完毕,且 ctrl + 左键也无法跳转到声明定义的源码,虽然运行是不会报错的,但是在使用的是不会提示相关的关键方法

这个问题困扰了我很久,查了很多资料,最终找到了解决方法;

(1)在pycharm的 settings >> Editor >> File Types

(2)选择 Text 并将 File name patterns 列表(识别为文本的文件名/扩展名列表),删除 __init__.py 文件名

(3)删除所有的文件名,发现问题已经解决!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文