![](/img/trans.png)
[英]missing modules after converting .py to .exe with pyinstaller
[英]Django project to .exe with Pyinstaller - Missing modules, ModuleNotFoundError
我正在使用 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)
目前我 cd 到 C:...\\proj,然后運行pyinstaller --name=Dashboard proj/manage.py
。 然后當我單擊 C:...\\proj\\dist\\Dashboard 中的 Dashboard.exe 時,出現錯誤。
我不確定這里出了什么問題。 我想我的文件夾結構可能有問題,或者我可能在錯誤的文件夾中調用了 pyinstaller。 任何幫助都非常感謝!
附加信息:
看起來文件夾結構很好,但缺少導入。 在我的manage.py
文件中,我添加了“ import Dashboard
”這一行。
但是,在我再次嘗試運行 pyinstaller 后,它說它缺少更多模塊,例如django.contrib.admin.apps
。 丟失的模塊似乎來自我的 settings.py 文件。
為了導入這些,我將它們添加到我的 SPEC 文件中。 每當我之前運行 pyinstaller 時,它都會添加三個新項目:一個 build 文件夾、一個 dist 文件夾和一個 Dashboard.spec 文件。 在 SPEC 文件中,我將已安裝的應用程序名稱從設置(加上 .apps)附加到 hiddenimports 列表中。
這解決了問題,並且編譯得很好。
編輯:
我最終添加了比上面列出的更多的 hiddenImports。 這是我目前使用的所有 hiddenImports。
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']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.