Pyinstaller转换的Django项目找不到html文件

cidc1ykv  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(113)

我将Django项目转换为exe文件并启动它。但是在浏览器中显示错误,说页面未找到。

C:.
|   db.sqlite3
|   list.txt
|   manage.py
|   
+---account
|   |   admin.py
|   |   apps.py
|   |   models.py
|   |   tests.py
|   |   urls.py
|   |   views.py
|   |   __init__.py
|   |   
|   +---migrations
|   |   |   __init__.py
|   |   |   
|   |   \---__pycache__
|   |           __init__.cpython-310.pyc
|   |           
|   +---templates
|   |   \---account
|   |           customers.html
|   |           dashboard.html
|   |           main.html
|   |           navbar.html
|   |           products.html
|   |           status.html
|   |           
|   \---__pycache__
|           admin.cpython-310.pyc
|           apps.cpython-310.pyc
|           models.cpython-310.pyc
|           urls.cpython-310.pyc
|           views.cpython-310.pyc
|           __init__.cpython-310.pyc
|           
+---crm
|   |   asgi.py
|   |   settings.py
|   |   urls.py
|   |   wsgi.py
|   |   __init__.py
|   |   
|   \---__pycache__
|           settings.cpython-310.pyc
|           urls.cpython-310.pyc
|           wsgi.cpython-310.pyc
|           __init__.cpython-310.pyc
|           
\---static
    +---css
    |       main.css
    |       
    +---images
    \---js

打包项目的命令:pyinstaller --name=crm manage.py和启动exe文件的命令:crm.exe runserver localhost:8000 --noreload。exe文件在dist文件夹中。
当我尝试使用www.example.com打开浏览器时127.0.0.1/8000,错误显示:

TemplateDoesNotExist at /
account/dashboard.html
Request Method: GET
Request URL:    http://127.0.0.1:8000/
Django Version: 4.1
Exception Type: TemplateDoesNotExist
Exception Value:    
account/dashboard.html
Exception Location: django\template\loader.py, line 19, in get_template
Raised during:  account.views.home

子文件夹似乎没有嵌入到exe中。谁能给予我一个解决这个问题的提示吗?

jk9hmnmh

jk9hmnmh1#

this question之后,我通过使用以下命令将模板直接添加到安装程序来克服这个问题:

datas=[('xxx/templates','xxx/templates')]

在我的.spec文件中,“xxx”是应用程序的名称。
看起来pyinstaller应该会自动拾取这些,我只是在解决这个问题,掩盖潜在的原因,所以如果有人有更好的答案,我也很乐意听到。

相关问题