码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Pyinstaller生成的exe程序,运行时找不到自定义模块


    问题描述
    今日用pyinstaller生成了一个exe文件,运行时一直出现ModuleNotFoundError: No module named 'models’错误。

    (maskrcnn_yolov5) D:\project\cell_experts\dist\experts>experts.exe
    Traceback (most recent call last):
      File "experts.py", line 9, in <module>
      File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
      File "cell_detection\cell_detector_batches.py", line 19, in <module>
    ModuleNotFoundError: No module named 'models'
    [138248] Failed to execute script 'experts' due to unhandled exception!
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    我的项目的目录结构如下所示:

    |---cell_experts
    --------|cell_detection
                        |---models
                        |---utils
    --------|cell_analyser
    
    • 1
    • 2
    • 3
    • 4
    • 5

    cell_detector_batches.py的代码如下所示例:

    #  -*- coding:  utf-8  -*-
    # YOLOv5 🚀 by Ultralytics, GPL-3.0 license
    import argparse
    import sys
    from pathlib import Path
    import time, os
    import numpy as np
    import math
    import cv2
    import torch
    import json
    
    FILE = Path(__file__).resolve()
    ROOT = FILE.parents[0]  # YOLOv5 root directory
    if str(ROOT) not in sys.path:
        sys.path.append(str(ROOT))  # add ROOT to PATH
    ROOT = Path(os.path.relpath(ROOT, Path.cwd()))  # relative
    
    from models.common import DetectMultiBackend
    from utils.general import (LOGGER, check_img_size, check_requirements,
                               increment_path, non_max_suppression,nms_double, print_args, scale_coords, strip_optimizer, xyxy2xywh,cell_classifier,correct_axis)
    from utils.torch_utils import select_device
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    使用的exe生成的命令:

    pyinstaller -D experts.py
    
    • 1

    问题产生原因
    PyInstaller 读取您编写的 Python 脚本。它分析您的代码以发现脚本执行所需的所有其他模块和库。然后它收集所有这些文件的副本——包括活动的 Python 解释器! – 并将它们与您的脚本放在一个文件夹中,或者可选地放在一个可执行文件中。

    PyInstaller 会在您的脚本中查找所有import语句。它找到导入的模块并在其中查找导入语句,以此类推,直到它拥有您的脚本可能使用的模块的完整列表。

    一些 Python 脚本以 PyInstaller 无法检测到的方式导入模块:例如,通过使用带有可变数据的 import() 函数、使用 importlib.import_module() 或在运行时操作 sys.path 值。如果你的脚本需要 PyInstaller 不知道的文件,你必须帮助它:

    • 您可以在 pyinstaller 命令行上提供其他文件。
    • 您可以在命令行上提供其他导入路径。
    • 您可以编辑 PyInstaller 第一次为您的脚本运行它时编写的 myscript.spec 文件。在规范文件中,您可以告诉
      PyInstaller 您的脚本独有的代码模块。
    • 您可以编写通知 PyInstaller 隐藏导入的“挂钩”文件。如果您为其他用户也可能使用的包创建“挂钩”,您可以将挂钩文件贡献给
      PyInstaller。

    解决方法

    pyinstaller --paths=D:\project\cell_experts\cell_detection --paths=D:\project\cell_experts\cell_analyser -D experts.py
    
    • 1

    同类解决方法:
    https://stackoverflow.com/questions/32093559/exe-file-created-by-pyinstaller-not-find-self-defined-modules-while-running

  • 相关阅读:
    MyBatis源码学习五之插件
    基础设施建设-企业级全栈测试平台的最佳实践
    矢量图绘制软件EazyDraw mac中文版软件介绍
    Nginx——下载,安装,启动,关闭,配置——负载均衡——静态代理——动静分离
    基于 LowCodeEngine 的调试能力建设与实践
    vue 关闭当前tab页,并更新父组件数据
    【已解决】华为手机如何关闭智慧助手·今天(负一屏) | 华为荣耀八手机智慧助手开关介绍 | 华为手机关闭负一屏开关后,仍接收到负一屏服务相关通知提醒怎么办
    【Edge】微软Edge每次启动自动导入Chrome收藏夹,无法取消“每次启动浏览器时导入浏览数据”功能的解决方法(202311)
    2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校教室管理系统9y8cv
    MySQL的主从复制与读写分离详解
  • 原文地址:https://blog.csdn.net/zhuguiqin1/article/details/126742510
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号