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

PyInstaller打包多.py脚本为单文件报错:找不到settings.py

解决PyInstaller打包后找不到settings.py的问题
  • 修正pathex路径
    你的Spec文件中pathex仅包含虚拟环境的site-packages目录,缺少项目自身的src路径,导致PyInstaller无法扫描到src下的自定义模块。更新pathex,将项目的src目录添加进去:

    pathex=['c:\\Users\\name\\python_projects\\projectname\\src', 'c:\\Users\\name\\python_projects\\projectname\\.venv\\Lib\\site-packages'],
    
  • 调整datas配置
    如果settings.py是作为Python模块被导入的(而非以普通文件形式读取),当前的datas配置属于多余操作——PyInstaller会自动收集被导入的Python模块。可以暂时注释掉这行配置,验证问题是否解决:

    # datas=[('src\\projectname\\', 'src')],
    

    若settings.py是作为配置文件被代码直接读取(比如用open()方法),则需要确保datas的目标路径与代码中读取的路径一致,示例如下:

    datas=[('c:\\Users\\name\\python_projects\\projectname\\src\\projectname\\settings.py', '.')],
    

    该配置会将settings.py打包到可执行程序的同级目录,匹配代码中的读取路径。

  • 手动添加hiddenimports
    如果PyInstaller的静态分析未识别到settings.py的导入(比如代码中使用了动态导入),可以手动将其加入hiddenimports:

    hiddenimports=['projectname.settings'],
    

    这里使用完整的模块路径,适配主脚本所在的projectname目录层级。

  • 重新打包验证
    修改完Spec文件后,执行以下命令重新打包:

    pyinstaller your_spec_file.spec
    

    运行生成的可执行程序,检查是否仍存在找不到settings.py的提示。

内容的提问来源于stack exchange,提问作者Jim Rutter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:43:19