Skip to content

配合pyinstaller时提示ModuleNotFoundError #4

@FrontierSetter

Description

@FrontierSetter

使用pip安装pyc-zipper成功,直接在命令行调用pyc-zipper可以识别
使用pyinstaller产生的spec文件如下:

# -*- mode: python ; coding: utf-8 -*-
from PyInstaller.utils.hooks import collect_all
from pyc_zipper import hook_pyinstaller
hook_pyinstaller()

datas = []
binaries = []
hiddenimports = []
tmp_ret = collect_all('torch')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]
tmp_ret = collect_all('triton')
datas += tmp_ret[0]; binaries += tmp_ret[1]; hiddenimports += tmp_ret[2]


a = Analysis(
    ['python/sglang/launch_server.py'],
    pathex=[],
    binaries=binaries,
    datas=datas,
    hiddenimports=hiddenimports,
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    noarchive=False,
    optimize=0,
)
pyz = PYZ(a.pure)
……

运行后输出与报错信息如下:

100 INFO: PyInstaller: 6.14.1, contrib hooks: 2025.5
100 INFO: Python: 3.10.12
313 INFO: Platform: Linux-5.14.0-3.0.3
313 INFO: Python environment: /usr
Traceback (most recent call last):
  File "/usr/local/bin/pyinstaller", line 8, in <module>
    sys.exit(_console_script_run())
  File "/usr/local/lib/python3.10/dist-packages/PyInstaller/__main__.py", line 231, in _console_script_run
    run()
  File "/usr/local/lib/python3.10/dist-packages/PyInstaller/__main__.py", line 215, in run
    run_build(pyi_config, spec_file, **vars(args))
  File "/usr/local/lib/python3.10/dist-packages/PyInstaller/__main__.py", line 70, in run_build
    PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/PyInstaller/building/build_main.py", line 1282, in main
    build(specfile, distpath, workpath, clean_build)
  File "/usr/local/lib/python3.10/dist-packages/PyInstaller/building/build_main.py", line 1220, in build
    exec(code, spec_namespace)
  File "launch_server.spec", line 3, in <module>
    from pyc_zipper import hook_pyinstaller
ModuleNotFoundError: No module named 'pyc_zipper'

使用which指令查看pyc-zipper和pyinstaller均安装在给定的目录下(当前虚拟环境的bin目录),请问是什么原因

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions