鱼C论坛

 找回密码
 立即注册
查看: 281|回复: 2

[已解决]pyinstaller打包问题

[复制链接]
发表于 2025-2-25 20:50:13 | 显示全部楼层 |阅读模式
1鱼币
# -*- mode: python ; coding: utf-8 -*-



a = Analysis(
    ['bin//run.py'],
    pathex=['bin'],
    binaries=[],
    datas=[("db//users","db//users"),("db//goods","db//goods"),("conf//config.ini","conf"),("log","log")],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)

exe = EXE(
    pyz,
    a.scripts,
    [],
    exclude_binaries=True,
    name='run',
    debug=False,
    bootloader_ignore_signals=False,
    strip=False,
    upx=True,
    console=True,
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)
coll = COLLECT(
    exe,
    a.binaries,
    a.datas,
    strip=False,
    upx=True,
    upx_exclude=[],
    name='run',
)


a = Analysis(
    ['bin//run.py'],

入口文件在bin目录下不能运行

a = Analysis(
    ['run.py'],
把入口文件从bin目录下拿到根目录下打包就可以运行

请问这是为什么,谢谢
最佳答案
2025-2-25 20:50:14
要确保PyInstaller正确打包程序,需要在spec文件的 Analysis 对象中正确设定入口文件和其他相关参数。以下是一个更正后的示例:

修改后spec文件示例


  1. # -*- mode: python ; coding: utf-8 -*-

  2. block_cipher = None

  3. a = Analysis(
  4.     ['bin/你的入口文件.py'],
  5.     pathex=['.'],
  6.     binaries=[],
  7.     datas=[],
  8.     hiddenimports=[],
  9.     hookspath=[],
  10.     runtime_hooks=[],
  11.     excludes=[],
  12.     noarchive=False
  13. )
  14. pyz = PYZ(a.pure, a.zipped_data)

  15. exe = EXE(
  16.     pyz,
  17.     a.scripts,
  18.     exclude_binaries=True,
  19.     name='run',
  20.     debug=False,
  21.     bootloader_ignore_signals=False,
  22.     strip=False,
  23.     upx=True,
  24.     console=True,
  25.     disable_windowed_traceback=False,
  26.     argv_emulation=False,
  27.     target_arch=None,
  28.     codesign_identity=None,
  29.     entitlements_file=None
  30. )

  31. coll = COLLECT(
  32.     exe,
  33.     a.binaries,
  34.     a.zipfiles,
  35.     a.datas,
  36.     strip=False,
  37.     upx=True,
  38.     upx_exclude=[],
  39.     name='run'
  40. )
复制代码


关键点说明:
  • 确保入口脚本路径在 Analysis 对象的第一个参数中正确设置,如上示例中 `['bin/你的入口文件.py']` 。
  • 使用相对路径或绝对路径确保PyInstaller能找到你的入口文件。
  • 确保所有其他参数根据你的实际情况进行适当配置。


如果仍有问题,请详细描述错误信息,以便进一步排查。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

最佳答案

查看完整内容

要确保PyInstaller正确打包程序,需要在spec文件的 Analysis 对象中正确设定入口文件和其他相关参数。以下是一个更正后的示例: 修改后spec文件示例 关键点说明: [*]确保入口脚本路径在 Analysis 对象的第一个参数中正确设置,如上示例中 `['bin/你的入口文件.py']` 。 [*]使用相对路径或绝对路径确保PyInstaller能找到你的入口文件。 [*]确保所有其他参数根据你的实际情况进行适当配置。 如果仍有问题,请详 ...
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-2-25 20:50:14 | 显示全部楼层    本楼为最佳答案   
要确保PyInstaller正确打包程序,需要在spec文件的 Analysis 对象中正确设定入口文件和其他相关参数。以下是一个更正后的示例:

修改后spec文件示例


  1. # -*- mode: python ; coding: utf-8 -*-

  2. block_cipher = None

  3. a = Analysis(
  4.     ['bin/你的入口文件.py'],
  5.     pathex=['.'],
  6.     binaries=[],
  7.     datas=[],
  8.     hiddenimports=[],
  9.     hookspath=[],
  10.     runtime_hooks=[],
  11.     excludes=[],
  12.     noarchive=False
  13. )
  14. pyz = PYZ(a.pure, a.zipped_data)

  15. exe = EXE(
  16.     pyz,
  17.     a.scripts,
  18.     exclude_binaries=True,
  19.     name='run',
  20.     debug=False,
  21.     bootloader_ignore_signals=False,
  22.     strip=False,
  23.     upx=True,
  24.     console=True,
  25.     disable_windowed_traceback=False,
  26.     argv_emulation=False,
  27.     target_arch=None,
  28.     codesign_identity=None,
  29.     entitlements_file=None
  30. )

  31. coll = COLLECT(
  32.     exe,
  33.     a.binaries,
  34.     a.zipfiles,
  35.     a.datas,
  36.     strip=False,
  37.     upx=True,
  38.     upx_exclude=[],
  39.     name='run'
  40. )
复制代码


关键点说明:
  • 确保入口脚本路径在 Analysis 对象的第一个参数中正确设置,如上示例中 `['bin/你的入口文件.py']` 。
  • 使用相对路径或绝对路径确保PyInstaller能找到你的入口文件。
  • 确保所有其他参数根据你的实际情况进行适当配置。


如果仍有问题,请详细描述错误信息,以便进一步排查。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2025-2-28 15:58:42 | 显示全部楼层
FishC 发表于 2025-2-25 20:50
要确保PyInstaller正确打包程序,需要在spec文件的 Analysis 对象中正确设定入口文件和其他相关参数。以下 ...

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-12 23:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表