当前位置:   article > 正文

Python找不到自己写的模块-你必须知道的知识

python找不到自己写的模块

博主最近遇到了python导入模块的问题,各种搜索查阅发现网上的资料参差不齐且很多没有讲到重点,于是打算写一篇直击要害的文章,帮助后来者少踩坑。

1.问题描述

目录结构如上图所示。module1包含两个子包module2和module3,依赖关系:module2中的test.py需要引入module3中的test2.py,然后你会发现,无论你怎么修改导入的代码,最后都会告诉你找不到模块。废话不多说,直接说要点。

2.python模块搜索机制

python解释器是怎么查找模块的:sys.path

打开终端,进入python命令行,打印sys.path你会看到:

这些目录就是解释器查找模块的目录,而用户自己写的模块就是通过红圈那一个路径来查找的。这个红圈其实就是python脚本的文件目录(注意,不是工作目录),比如 :

 工作目录是当前终端的目录!

看到这个sys.path[0]我想你应该知道咋回事了:解释器在test.py的文件目录D:\Study\Code\demo\python\module1\module2下根本找不到module3!

3.解决办法

知道原因后解决办法就很简单,只需要将所需模块的目录添加进sys.path就可以了。必须要记住的一点:导入模块必须按照你添加的目录来!例如本例中,如果这样添加:

这样module1的目录(其下有module2和module3两个模块)告诉了解释器,就可以直接这样导入test2.py:

 

没有错误!

当然,添加目录这里可以很随便,只要调用保证能搜索到就行,比如你可以把所有自己写的模块放进一个总的文件夹,然后把这个文件夹目录添加到sys.path,调用的时候逐级调用即可!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/995181
推荐阅读
相关标签
  

闽ICP备14008679号