pyhton找不到module的问题及解决方案

 更新时间:2025年12月16日 09:29:16   作者:六月五日  
设置PYTHONPATH环境变量可以告诉Python解释器在哪里查找模块和包,通过在bash中使用export命令,并将路径追加到PYTHONPATH变量中,可以确保Python在任何目录下都能找到指定的模块,这样可以避免ModuleNotFoundError错误

pyhton找不到module

export PYTHONPATH=~/backend:$PYTHONPATH

这条命令是在设置一个叫做 PYTHONPATH 的环境变量,它的作用是告诉 Python 解释器去哪里寻找你写的模块和包。

把它拆开来看

  • export:这是 shell(比如 bash)的一个命令,它会把一个变量变成“环境变量”。这意味着,这个变量不仅当前命令行能用,它之后启动的所有子进程(比如你接下来运行的 Python 脚本)也都能看到这个变量。
  • PYTHONPATH=…:这部分是在给 PYTHONPATH 这个变量赋值。
  • //backend:这是你想要添加到 Python 搜索路径里的一个具体文件夹路径。
  • : $ PYTHONPATH:这部分非常关键。冒号 : 是路径分隔符(在 Windows 上是分号 ;),$PYTHONPATH 表示引用这个变量之前的值。这样做的效果是“追加”,而不是“覆盖”。它把你指定的目录添加到了现有搜索路径的最前面,同时又保留了系统原有的路径。

简单来说,这条命令的意思是:

请系统记住,以后运行 Python 程序时,除了去默认的地方找模块,也请优先来 backend 这个文件夹里找。

为什么需要这样做?

假设你的项目结构是这样的:

├── backend/
│ ├── app.py
│ └── models/
│ └── user.py
└── test.py

在 backend/app.py 文件里,你可能想这样导入模块:

在 backend/app.py 中

from models import user

如果你直接在 backend 目录下运行 python app.py,Python 能找到 models。

但如果你在项目根目录(自己从头写尝试)或其他任何地方运行 python backend/app.py,Python 就会报错

ModuleNotFoundError: No module named ‘models’

因为它不知道 models 文件夹在哪里。

执行了你那条 export PYTHONPATH=… 命令后,无论你在哪个目录运行这个 Python 脚本,Python 都会知道去 backend 这个目录下寻找 models,从而成功导入。

重要提示:

  • 临时性:这个命令只在当前的终端窗口会话中有效。如果你关闭了终端,再重新打开一个,这个设置就消失了。
  • 永久设置:如果你希望每次打开终端都自动设置好这个变量,可以把这条命令加到你的 shell 配置文件里(比如 ~/.bashrc 或 ~/.zshrc),然后运行 source ~/.bashrc 让它立即生效。

总结

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

相关文章

  • Python实现数据库表的监控警告的项目实践

    Python实现数据库表的监控警告的项目实践

    本文主要介绍了使用Python 实现对数据库表的监控告警功能, 并将告警信息通过钉钉机器人发送到钉钉群,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • python中的迭代器,生成器与装饰器详解

    python中的迭代器,生成器与装饰器详解

    大家好,本篇文章主要讲的是python中的迭代器,生成器与装饰器详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • django中使用POST方法获取POST数据

    django中使用POST方法获取POST数据

    这篇文章主要介绍了django中使用POST方法获取POST数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python代码太长换行的实现

    Python代码太长换行的实现

    这篇文章主要介绍了Python代码太长换行的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • pyinstaller打包opencv和numpy程序运行错误解决

    pyinstaller打包opencv和numpy程序运行错误解决

    这篇文章主要介绍了pyinstaller打包opencv和numpy程序运行错误解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python+PyQt5实现文件夹结构映射工具

    Python+PyQt5实现文件夹结构映射工具

    在日常工作中,我们经常需要对文件夹结构进行复制和备份,本文将带来一款基于PyQt5开发的文件夹结构映射工具,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • Python2与Python3的区别点整理

    Python2与Python3的区别点整理

    在本篇文章里小编给大家整理的是关于Python2与Python3的区别点整理内容,需要的朋友们可以参考下。
    2019-12-12
  • 对python中类的继承与方法重写介绍

    对python中类的继承与方法重写介绍

    今天小编就为大家分享一篇对python中类的继承与方法重写介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python之try无法使用全局变量的问题解决

    Python之try无法使用全局变量的问题解决

    当我们使用try语句时,如果在try中使用了全局变量,但又在except或finally中修改了这个全局变量,就会出现这种无法修改全局变量的情况,下面就来解决一下这个问题,感兴趣的可以了解一下
    2024-08-08
  • python 实现两个字符串乘法小练习

    python 实现两个字符串乘法小练习

    这篇文章主要给大家分享的是python 实现两个字符串乘法小练习,两个字符串相乘,基本思路是num1依次乘以num2各个数位上的数字,下面分享的内容,可作为大家平时学习的小练习,需要的朋友可以参考下,希望对你的学习有所帮助
    2022-02-02

最新评论