Python import自己的模块报错问题及解决

作者:cacho_37967865 时间:2023-11-09 15:57:08 

在实际使用python时,我们会将一些公共的东西写到一些基础模块中,供其他模块去调用,这时会去import自定义的一些基础模块,然后来导入。

自己写好了脚本,然后导入,导入的情况分为以下情况:

1. 运行的模块与需要调用自定义基础模块在同一文件夹下

2. 自定义模块与所需要调用自定义模块的文件不在同一文件夹下

一、同一文件夹下

这时的调用就较为简单了,直接导入即可

from deal_excel import copy_sheetWrite, row_commonWrite
from deal_time import minus_date

但是这个时候在PyCharm中显示的是报错

但是运行程序是不会报错的

Python import自己的模块报错问题及解决

为了让在PyCharm中不报错,可以将包/文件夹设为 sources Root

Python import自己的模块报错问题及解决

现在就不报错了

Python import自己的模块报错问题及解决

在cmd命令中执行也是成功的

Python import自己的模块报错问题及解决

如果在模块前面加上包名(下面有个__init__.py)或者文件夹名

from msydwork.deal_excel import copy_sheetWrite, row_commonWrite
from msydwork.deal_time import minus_date

PyCharm中显示不报错,运行程序成功

Python import自己的模块报错问题及解决

但是在cmd命令中运行却是失败的

Python import自己的模块报错问题及解决

所以对于处于同一文件夹下的情况:直接导入模块;为了PyCharm中不报错,将包/文件夹设为sources Root

二、处于不同文件夹下面

在PyCharm中是不会报错而且执行成功,是由于将deal_excel、deal_time所在包设为sources Root:

Python import自己的模块报错问题及解决

这时在cmd命令中是执行失败的

Python import自己的模块报错问题及解决

在PyCharm中是不会报错而且执行成功另外一种方法:导包时全路径(可以不设sources Root)

Python import自己的模块报错问题及解决

这时在cmd命令中也是报错的

Python import自己的模块报错问题及解决

为了让代码在cmd命令中执行成功,需要将自定义基础模块的文件夹/包添加到Python的库路径中。

三、找到本地库的路径,然后将文件拷进去即可

拷贝到\Lib\site-packages中

Python import自己的模块报错问题及解决

PyCharm中是不会报错而且执行成功

Python import自己的模块报错问题及解决

cmd命令中执行成功

Python import自己的模块报错问题及解决

四、手动给python添加搜索路径

在python安装目录的\Lib\site-packages文件夹中建立一个.pth文件,内容为自己写的库绝对路径

Python import自己的模块报错问题及解决

这个时候PyCharm中是会报错的,但是执行是成功的

Python import自己的模块报错问题及解决

cmd命令是执行成功的。

Python import自己的模块报错问题及解决

还有一种方法导入完整路径:

Python import自己的模块报错问题及解决

将根目录设为搜索路径

Python import自己的模块报错问题及解决

这时候不管在PyCharm还是cmd执行都是成功的

所以对于处于不同一文件夹下的情况:先手动给python添加搜索路径(根目录),然后直接导入模块全路径;

在这里说一句Python的包搜索路径

Python会在以下路径中搜索它想要寻找的模块:

1. 程序所在的文件夹

2. 标准库的安装路径

3. 操作系统环境变量PYTHONPATH所包含的路径

来源:https://blog.csdn.net/sinat_37967865/article/details/103064424

标签:Python,import,模块,报错
0
投稿

猜你喜欢

  • 深入了解Python枚举类型的相关知识

    2022-08-02 06:15:40
  • HTTP协议详细介绍

    2022-08-09 23:52:24
  • pycharm修改文件的默认打开方式的步骤

    2023-04-18 10:38:23
  • 一文搞懂python异常处理、模块与包

    2023-09-05 05:01:25
  • Bootstrap警告框(Alert)插件使用方法

    2024-04-27 15:23:05
  • Python ord函数()案例详解

    2023-06-25 04:50:28
  • IntelliJ IDEA卡死,如何优化内存

    2023-07-04 12:10:27
  • Go语言map元素的删除和清空

    2024-02-05 10:42:25
  • python中将阿拉伯数字转换成中文的实现代码

    2021-09-30 05:45:25
  • mysql8.0.23 linux(centos7)安装完整超详细教程

    2024-01-18 23:59:43
  • python 移动图片到另外一个文件夹的实例

    2022-09-17 07:56:14
  • javascript eval和JSON之间的联系

    2024-04-19 10:00:51
  • 基于Oracle的面向对象技术入门基础简析开发者网络Oracle

    2010-07-18 12:57:00
  • TypeScript学习之强制类型的转换

    2024-04-25 13:08:07
  • 原生js实现对Ajax的封装(仿jquery)

    2024-04-22 12:57:06
  • 浅谈FastClick 填坑及源码解析

    2024-04-10 16:08:57
  • Pytest测试框架基本使用方法详解

    2022-06-23 20:49:04
  • Python变量、数据类型、数据类型转换相关函数用法实例详解

    2021-03-29 08:30:35
  • 分享4个Python中高效省时的技巧

    2021-02-14 22:32:09
  • oracle中add_months()函数及用法总结

    2024-01-13 16:23:59
  • asp之家 网络编程 m.aspxhome.com