使用 Pyinstaller 将 Django 项目转换为 .exe - 缺少模块、ModuleNotFoundError

2024-04-29

我正在使用 Pyinstaller 将 Django 项目转换为 .exe 文件。我希望能够只需单击一个图标并在浏览器中打开该项目。这是我的文件夹结构:

proj
    __pycache__
    proj
        __pycache__
        __init__.py
        manage.py
        Dashboard
            __pycache__
            __init__.py
            urls.py
        proj
            __pycache__
            __init__.py
            settings.py
            urls.py
            wsgi.py
    static_cdn

这是我的manage.py 文件:

# -*- coding: utf-8 -*-
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "proj.settings")
    print("here")
    try:
        from django.core.management import execute_from_command_line
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc

    import django.test
    from html.parser import HTMLParser
    execute_from_command_line(sys.argv)

Currently I cd to C:...\proj, then run pyinstaller --name=Dashboard proj/manage.py. Then when I click on Dashboard.exe in C:...\proj\dist\Dashboard, an error comes up.errorMessage

我不确定这里出了什么问题。我想我的文件夹结构可能有问题,或者我可能在错误的文件夹中调用 pyinstaller。任何帮助都非常感谢!

附加信息:

  • 我正在遵循来自本教程 https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Executable-From-Django关于如何制作.exe
  • A 建议添加一个__init__.py文件到 C:...\proj\proj,但这会使 pyinstaller 功能失败并出现错误ModuleNotFoundError: No module named 'proj.settings'.
  • 我遵循了答案这个问题 https://stackoverflow.com/questions/18494620/django-to-desktop-app-with-pyinstaller?rq=1在我的manage.py 文件中。

看起来文件夹结构很好,但缺少导入。在我的manage.py文件中,我添加了行“import Dashboard".

However, after I tried to run pyinstaller again it said it was missing more modules, like django.contrib.admin.apps. The missing modules seem to be coming from my settings.py file. enter image description here

为了导入这些,我将它们添加到我的 SPEC 文件中。每当我之前运行 pyinstaller 时,它都会添加三个新项目:一个 build 文件夹、一个 dist 文件夹和一个 Dashboard.spec 文件。在 SPEC 文件中,我将设置中安装的应用程序名称(加上 .apps)附加到隐藏导入列表中。

Here is the entirety of my .spec file. enter image description here

这解决了问题并且编译得很好。

EDIT:

我最终添加了比上面列出的更多的隐藏导入。这是我当前使用的所有隐藏导入。

hiddenimports=['django.contrib.admin.apps', 'django.contrib.auth.apps', 'django.contrib.contenttypes.apps', 'django.contrib.sessions.apps', 'django.contrib.messages.apps', 'django.contrib.staticfiles.apps', 'django.contrib.messages.middleware', 'django.contrib.sessions.middleware', 'django.contrib.sessions.serializers', 'django.template.loaders', 'django.contrib.auth.context_processors', 'django.contrib.messages.context_processors']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Pyinstaller 将 Django 项目转换为 .exe - 缺少模块、ModuleNotFoundError 的相关文章

随机推荐

  • 如何使用 C# SDK 连接到 facebook 并调试 facebook 应用程序

    我真的很努力地试图找到一些真正适用于基础知识的启动和运行的东西 即使是 SDK 附带的教程应用程序似乎也必须上传才能工作 因此没有简单的方法在本地调试和测试它 有人有我可以使用的工作示例的链接吗 Cheers 这就是我目前在我的 aspx
  • 如何使用python自动将基于CSV的表创建到postgres中

    我是一名新的 Python 程序员 尝试使用 python 脚本将示例 CSV 文件导入到我的 Postgres 数据库中 我有一个名为abstable1的CSV文件 它有3个标题 Absid 名称 编号 我的一个文件夹中有很多这样的文件
  • 在 virtualenv 中通过 pip 安装 PyGObject [重复]

    这个问题在这里已经有答案了 我实际上正在将旧的 django 应用程序从 python2 7 升级到 python3 4 通过 pip 安装 pygobject 时 出现此错误 Collecting pygobject Using cach
  • Netbeans 将 css 变量显示为错误

    当我使用 css 变量时 我的 Netbeans IDE 显示错误 例如 这行代码将返回错误 root main bg color dad66f title color var main bg color 我在网上找到了这个解决方案 htt
  • 尽管+ geom_line() 图表中没有线条

    我已阅读文档 我认为我的代码应该是正确的 但输出中的点之间仍然没有线条 怎么了 x 轴是离散的 y 轴是连续的 My code point sqrmPrice lt ggplot overview df aes x areaSize y s
  • Maven 依赖类型 ejb 与 jar

    有什么区别
  • jQuery CouchDB - 视图的过滤键

    我正在使用与 couchdb 捆绑在一起的 javascript 库来查询数据库 附带说明一下 这里很好地概述了它提供的功能 并提供了很多很好的示例 http bradley holt com 2011 07 couchdb jquery
  • 根据条件添加 vue 指令

    是否可以根据条件设置指令 我有一个 粘性 指令来使元素粘在屏幕上 我有一个正在使用的社交分享组件
  • 用户表中发生“数据操作操作在此视图上不合法”

    当我尝试在属于我正在使用的用户的表上插入值时 会发生此错误 SQL Error ORA 01732 data manipulation operation not legal on this view Cause Action 在人们所说的
  • .htaccess php_value include_path 不起作用

    我在当地有一个小项目 我在 Windows 下使用 XAMPP 工作 我的文件目录结构是 根目录 C xampp htdocs routes Under this folder I have my bootstrap php with th
  • python 中的最小堆

    我想通过定义自定义比较函数将一组对象存储在最小堆中 我看到有一个 heapq 模块作为 python 发行版的一部分可用 有没有办法在此模块中使用自定义比较器 如果没有 其他人是否构建了自定义最小堆 两个选择 除了 Devin Jeanpi
  • Android Studio 点击 Android 设备监视器时出现错误

    每当我单击 Android 设备监视器时 我都会在 android studio 中遇到此错误 Monitor An error has occurred See the log file C Users
  • 稍后如何附加到正在运行的 Docker 容器?

    我想简单地启动一个 docker 容器来执行一些 java 代码 最终启动 JBoss 这工作正常 只是我不知道如何再次连接到容器并返回到 bash 提示符 这就是我启动容器的方式 docker run i t p 80 80 v tmp
  • 如何在powershell中使用system.tuple?

    只是出于好奇 这不是 我必须拥有它 而是如何在 powershell 中使用 system tuple 类声明元组 我正在使用 powershell exe config 加载框架 4 0 但无法创建元组 尝试这个 PS C ps1 gt
  • igraph 中的颜色特定节点

    我正在尝试为节点 6 和 7 着色 无论从对象 d 中选择什么字母 g lt graph from literal 1 2 3 4 5 6 7 Rename sum up all the vertices d lt c a b c d e
  • Android NDK 构建,方法无法解析

    我有一个带有本机代码的 Android 项目 我可以通过调用从命令行构建本机代码ndk build命令没有错误或警告 但是当我在ADT中打开它时 它显示以下错误 错误信息 Method CallStaticIntMethod could n
  • 基于组件的游戏设计中的共享字段

    我认为这是使用 XNA 在 C 中完成基于组件的游戏引擎之前的最后一个逻辑飞跃 我定义了实体类和抽象组件 我的问题出现在我的 EntityFactory 中 当我想创建一个新实体时 我将 EntityType 枚举传递给工厂中的静态方法 然
  • mifare 卡身份验证错误“6982:安全状态未满足”

    我有 pc sc 读卡器和非接触式卡 mifare 卡 我可以连接到该卡 并且我也成功执行 getdate 命令 但是当我想进行身份验证时 我看到此错误 6982 安全状态不满足 我已经尝试过这 3 个不同的身份验证命令 但所有这些命令都出
  • 如何在 Rust 中删除字符串的第一个和最后一个字符?

    我想知道如何删除 Rust 中字符串的第一个和最后一个字符 Example Input Hello World Output ello Worl 您可以使用 chars 迭代器并忽略第一个和最后一个字符 fn rem first and l
  • 使用 Pyinstaller 将 Django 项目转换为 .exe - 缺少模块、ModuleNotFoundError

    我正在使用 Pyinstaller 将 Django 项目转换为 exe 文件 我希望能够只需单击一个图标并在浏览器中打开该项目 这是我的文件夹结构 proj pycache proj pycache init py manage py D