一、背景介绍

1. 工具目录结构

为了便于统一管理一些小工具,在本地创建了一个mytools的目录,子目录的结构如下:

2.python搜索路径

在环境变量中,增加了PYTHONPATH的设置,value为‘e:\mytools\lib\python‘。

二、问题描述

做好准备工作后,信心满满的运行了一把,结果却是从未见过的‘ModuleNotFoundError: No module named 'addhosts.argument_exception'; 'addhosts' is not a package’的错误。

三、解决思路及方法

面对这个错误,甚是不知所云啊!在编写代码的过程中执行是通过的呀。

1.难道是项目目录结构和工具目录结构的差异造成的?

想到这,我将addhost.py文件,由bin目录调整到lib\python目录下。

目录结构调整后,工具确实可以正常工作了,但这样的目录结构不是我想要的。

2. 'addhosts' is not a package?

lib下的addhosts中确实是有__init__.py这个文件啊,为什么会提示'addhosts' is not a package ? 是我的__init__py文件有问题吗?导致python不能将addhosts识别为一个包?

于是我翻阅了python书籍,通过网络查询了资料,对比了python第三方库site-packages下的库文件。

最终确认问题不在__init__.py文件上。

3. 搜索路径没生效?

想到这赶紧验证了一下,路径在!

又到pycharm中进行了二次确认。经过查看,python External Libraries里已经识别到了addhosts库了。

到此就更让我疑惑了,addhosts确实是个package!也能识别出addhosts是个类库,为什么会提示‘addhosts’ is not a package呢 ?

4.峰回路转!

抱着试试看的心态,我在项目中新建了python file,随便命名为addhoststest,然后将addhosts.py中的代码全部粘贴到addhoststest.py文件中。

run一下,结果竟然成功了。

至此,终于明白失败的原因了。为了验证我的推断,又做了个小实验。在项目目录下,新建了html.py文件,导入htmlpackage下的类。运行结果也出现了is not a package的错误。

四、总结可以设置PYTHONPATH环境变量,来增加python的搜索路径;

package里的__init__.py文件,可以为空文件;

运行文件名称不要与类库中的package同名。

modulenotfounderror python_你所不知道的 【ModuleNotFoundError: No module named ''; '' is not a package】...相关推荐

  1. 那些你所不知道的arXiv使用技巧

    作者:Tom Hardy Date:2020-12-23 来源:那些你所不知道的arXiv使用技巧

  2. 系统调优,你所不知道的TIME_WAIT和CLOSE_WAIT

    https://my.oschina.net/fdhay/blog/638631 高性能网络 | 你所不知道的TIME_WAIT和CLOSE_WAIT 2016-02-18 大房 大房说 本文是我将最 ...

  3. ai的弹窗点了都不响应_【评价集合】拼多多评价,你所不知道的点都在这里!...

    对于在拼多多开店的商家们来说,评价是消费者对于商品的好坏程度的一个评分,评价的高低不仅仅会影响到商品的销量,更会影响转化率以及权重!所以为了店铺商品的长远发展打算!各位商家在求取出评.好评的道路上不断 ...

  4. python 函数调用 不允许关键字参数_你所不知道的Python|函数参数的演进之路

    原标题:你所不知道的Python|函数参数的演进之路 函数参数处理机制是Python中一个非常重要的知识点,随着Python的演进,参数处理机制的灵活性和丰富性也在不断增加,使得我们不仅可以写出简化的 ...

  5. 你所不知道的日志异步落库

    https://www.cnblogs.com/scy251147/p/9193075.html 在互联网设计架构过程中,日志异步落库,俨然已经是高并发环节中不可缺少的一环.为什么说是高并发环节中不可 ...

  6. 被低估的css滤镜,你所不知道的 CSS 滤镜技巧与细节

    本文主要介绍 CSS 滤镜的不常用用法,希望能给读者带来一些干货! 系列 CSS 文章汇总在我的 Github ,持续更新,欢迎点个 star 订阅收藏. OK,下面直接进入正文.本文所描述的滤镜,指 ...

  7. 国际计算机思维比赛,少儿编程领域中,你所不知道的国际计算思维大赛

    原标题:少儿编程领域中,你所不知道的国际计算思维大赛 孩子学习编程,除了培养编程思维和计算思维,也能为未来应对人工智能时代打下基础.今天给大家讲的的是Bebras国际计算思维大赛,请大家持续关注坚果学 ...

  8. 你所不知道的setTimeout

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...

  9. 计算机键盘标注,你所不知道的 Windows 10 小诀窍:万能计算器、虚拟键盘、屏幕截图标注...

    原标题:你所不知道的 Windows 10 小诀窍:万能计算器.虚拟键盘.屏幕截图标注 Windows 10 里面有许多好用的小功能,只是藏得很深,平常你不一定会发现它,又或者可能是并没有特别标注出来 ...

  10. 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

    转http://www.cnblogs.com/zhijianliutang/p/4100103.html 前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的 ...

最新文章

  1. python一些常用函数_【python】常用的一些内置函数
  2. 3.2-3 tac、more
  3. 动态添加组件_使用vue.js的动态组件模板
  4. 如何恢复master数据库
  5. 实验5 数据查询--连接查询
  6. [Redux/Mobx] 你有使用过redux-saga中间件吗?它是干什么的?
  7. Android学习按键事件监听与Command模式
  8. 大数据如何进行创新与变革
  9. 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第二节课笔记
  10. 用两个队列实现栈---用两个队列实现栈
  11. GIT原理,知其然,知其所以然
  12. 素数筛——区间段内最小,最大素数,以及这个区间中素数的个数
  13. HTTP 401和403区别
  14. 104届广交会秋交会展位(摊位)联营参展函 (广交会展位合作)
  15. Java对PDF进行电子签章CA签名认证
  16. 教程篇:《基础模块2》金蝶K3WISE15.0-注册套打教程
  17. asp.net web开发框架_Web前端开发必不可少的9个开源框架
  18. 唱作音乐人朱卫明新歌全网首发,当初恋遇到《龙仙街》
  19. vue-i18n的使用,前端实现中英文切换
  20. 什么是架构?架构的本质和作用!

热门文章

  1. [转]JS弹出div和关闭
  2. 西门子plc烧录单片机_单片机可以替代 PLC 吗?
  3. linux引导界面含义,Linux引导时输入特殊信息的含义的方法
  4. aop实现原理_Spring学习之AOP
  5. linux网络编程 mingw,Windows网络编程
  6. arcgis中editor在哪_leetcode 刷题工具 leetcode-editor 本地调试篇
  7. php 中echo用法,php中echo()函数的用法(附代码)
  8. 正点原子 潘多拉stlink驱动_「正点原子Linux连载」第五十六章Linux自带的LED灯驱动实验...
  9. JDK8 有关集合部分常用的语法
  10. [淘宝商城首页]-图片灯箱明暗遮罩效果之jquery版