You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyInstaller打包Django报错 无法获取pixel.settings的INSTALLED_APPS

报错根因

核心问题是PyInstaller运行Django自动收集钩子时,Python导入路径无法定位到pixel.settings模块。你当前spec文件内的pathex配置指向错误,同时缺少项目资源打包规则,就算绕过当前报错,后续运行exe也会出现静态资源丢失、数据库找不到等问题。

修复步骤
  • 修正pathex路径:你现在配置的C:/Users/Alex_x/Desktop/Pixel/pixel是项目内部包目录,要改成manage.py所在的根目录C:/Users/Alex_x/Desktop/Pixel,只有在这个路径下Python才能识别到pixel包,正常导入pixel.settings。
  • 补全datas打包规则:把项目的代码文件、数据库、静态资源、媒体资源都纳入打包范围,替换Analysis块里的datas字段内容为:
datas=[
    ('pixel', 'pixel'),
    ('db.sqlite3', '.'),
    ('static', 'static'),
    ('media', 'media'),
],
  • 补全缺失的隐藏导入:你当前的hiddenimports列表漏了自定义的brain应用相关模块,把brain、brain.apps、brain.apps.BrainConfig、brain.views、brain.models、brain.urls加到列表里,避免PyInstaller漏扫自定义模块。
  • 打包前预设环境变量:执行打包命令前,先在当前命令行窗口运行set DJANGO_SETTINGS_MODULE=pixel.settings,避免PyInstaller的Django钩子读不到配置模块路径。
  • 清理旧打包产物:删掉之前生成的build、dist文件夹,再执行pyinstaller manage.spec重新打包。
额外配置修正

你settings.py里的静态文件路径写的是硬编码相对路径,打包后会找不到文件,把STATICFILES_DIRS改成基于BASE_DIR的绝对路径写法:

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'pixel/apps/brain/static'),
]

如果后续打包后运行提示缺少某个模块,直接把对应模块名加到hiddenimports列表里重新打包即可。

内容的提问来源于stack exchange,提问作者MSNN Music

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 18:03:18