python踩坑系列之导入包时下划红线及报错“No module named”问题

使用pycharm编写Python时,自己写了一个包(commontool),在同级另一个路径下(fileshandle)导入此包时,包名和模块名下都有红色下划线,运行程序报错 “ ModuleNotFoundError: No module named 'commontool' ”,针对此问题的几种解决办法:

方法一:

  由于包和文件夹是有区别的,文件夹在创建时只会生成一个文件夹,不可以被导入。包在创建的时候会自动生成一个“ __init__.py ”的文件,这个文件定义了包的属性和方法,所以包是可以被导入的。也可以在创建文件后,手动新建一个“ __init__.py ”文件。在包下“ __init__.py ”文件文件可以是空,但必须存在。所以要被导入,前提是类型必须是包类型。

方法二:

在 __init__.py文件中添加变量,如下:

__all__ = ["module_1","module_2","module_3"]

module为要该包下可以被导入的模块。

方法三:

在 setting --> Project Structure 下将要被导入的设置为Sources

方法四:

1>如果要导入的包是在打开路径的子目录下,则可以直接进行导入,如下图:

2>如果要导入的包是在项目的子目录的子目录下,也就是我这次遇到的情况,则要将包的父目录设置成Sources。

python踩坑系列之导入包时下划红线及报错“No module named”问题的更多相关文章

  1. mac 上python编译报错No module named MySQLdb

    mac 上python编译报错No module named MySQLdb You installed python You did brew install mysql You did expor ...

  2. python踩坑系列——报错后修改了.py文件,但是依然报错

    一开始.py文件中的函数名大小写错了,但是在终端是对的,报错: 'module' object has no attribute '某函数名' 后来就去修改.py文件.结果重新import该.py文件 ...

  3. Python模块学习之xlrd 读取Excel时传入formatting_info=True报错:NotImplementedError: formatting_info=True not yet implemented

    问题:xlrd读取Excel时传入 formatting_info=True 报错 之前我们使用读取xls文件的时候都是使用的xlrd库,但是这个库只能操作 .xls格式,对于后来的 .xlsx的版本 ...

  4. 解决python在命令行中运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

    转自https://www.cnblogs.com/dreamyu/p/7889959.html https://www.cnblogs.com/lifeofershisui/p/8135702.ht ...

  5. 解决python在cmd运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

    1.下图为我的自动化测试工程结构图 我通过运行run.bat批处理文件,调用cmd控制台运行start_run.py来开始我的自动化测试,但是出现如下错误: 大家可能知道我们的工程在IDE(Pycha ...

  6. Python踩坑系列之使用redis报错:module 'redis' has no attribute 'Redis'问题

    初次使用redis时,在链接Redis后,运行报错“module 'redis' has no attribute 'Redis' ”. 具体代码如下: import redis r = redis. ...

  7. Python踩坑系列之安装pycrypto报错:“Microsoft Visual C++14.0 is required”问题。

    由于要使用Python3实现des3加密要使用pycrypto模块,所以使用pip install pycrypto 来安装,然后就常规性掉坑.安装报错“Microsoft Visual C++14. ...

  8. Python 导入requests报错No module named requests

    刚开始是在Pycharm里面,发现就是不对,导入老提示No module named requests这个错误.后面发现是指向的python.exe路径不对,到setting里面设置换一下路径就好.

  9. centos6.5 导入matplotlib报错 No module named '_tkinter

    1.解决方案 在centos系统下,导入matplotlib时,出现ImportError: No module named ‘_tkinter’的错误,首先 yum list installed | ...

随机推荐

  1. Saltstack_使用指南18_API

    1. 主机规划 salt 版本 [root@salt100 ~]# salt --version salt (Oxygen) [root@salt100 ~]# salt-minion --versi ...

  2. maven配置本地和远程仓库

    maven项目中我们不用挨个导入jar包,那这些Jar包从哪里来呢?当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载.首先,Maven 将从本地资源库 ...

  3. WPF button 图片显示

    btn1.Background = new ImageBrush(new BitmapImage(new Uri(@"pack://application:,,,/Picture/PreSe ...

  4. Delphi 任务栏中不显示窗口

    目的: 1. 窗口不在任务栏显示. 2. 窗口不显示在Alt+Tab的切换列表中. 3. 在任务管理器的应用程序列表中不显示. 示例: type TAppWndBrowser = class( TFo ...

  5. 【转】C++ - 结构体构造函数使用总结

    声明 转载自:https://www.cnblogs.com/wlw-x/p/11566191.html 关于结构体构造函数使用总结 三种结构体初始化方法 1.利用结构体自带的默认构造函数 2.利用带 ...

  6. WPF DATAGrid 空白列 后台绑定列 处理

    原文:WPF DATAGrid 空白列 后台绑定列 处理 AutoGenerateColumns <DataGrid x:Name="dataGrid" Margin=&qu ...

  7. SQLServer某个库log日志过大,无法收缩日志文件 ,因为该文件结尾的逻辑日志文件正在使用

    问题描述: 今天看到user库日志备份方面很久,然后查看到user库这个log日志很大 图片是我已经解决了,然后现在可以收缩的大小 解决方法: 1.先备份user库日志,因为很大,所以要等很久,这个只 ...

  8. 【shell脚本】优化内核参数===

    一.Linux内核参数优化 Sysctl命令用来配置与显示在/proc/sys目录中的内核参数.如果想使参数长期保存,可以通过编辑/etc/sysctl.conf文件来实现.  命令格式: sysct ...

  9. idea 方法注释live template

    groovyScript("def result=''; def params="${_1}".replaceAll('[\\[|\\]|\\s]', '').split ...

  10. Web前端——表单提交和Js添加选项

    表单 表单提交 表单提交之后会将表单的数据以get或post方式,传送到action要打开的页面 方式1: 使用提交按钮 <form action="" method=&qu ...