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

作者:

文章目录
  • export PYTHONPATH=~/backend:$PYTHONPATH 这条命令是在设置一个叫做 PYTHONPATH 的环境变量,它的作用是告诉 Python 解释器去哪里寻找你写的模块和包。
  • 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 让它立即生效。
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: pyhton Sanic框架的文件上传功能开发实战示例教程 Pyhton多线程采集图片方式 Pyhton自动化测试持续集成和Jenkins Pyhton爬虫知识之正则表达式详解 pyhton学习与数据挖掘self原理及应用分析
  • 目录
    • pyhton找不到module
      • 把它拆开来看
      • 为什么需要这样做?
    • 在 backend/app.py 中
      • 总结

        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 文件里,你可能想这样导入模块:

        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 让它立即生效。

        以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

        您可能感兴趣的文章:

        • pyhton Sanic框架的文件上传功能开发实战示例教程
        • Pyhton多线程采集图片方式
        • Pyhton自动化测试持续集成和Jenkins
        • Pyhton爬虫知识之正则表达式详解
        • pyhton学习与数据挖掘self原理及应用分析

        站内搜索