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

PyInstaller生成的.exe文件无法运行,提示缺少ipaddress模块求助

PyInstaller打包exe闪退与模块缺失问题解决

问题背景

使用PyInstaller打包Python脚本为.exe时,程序打开即闪退,CMD运行后出现模块缺失错误,同时.spec文件显示为通用文件。

脚本代码

import time
name = input('what is your name?\n')

print('fck you', name)

time.sleep(1)

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
print(s.getsockname()[0])
s.close()

.spec文件内容

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


block_cipher = None


a = Analysis(
    ['open.py'],
    pathex=[],
    binaries=[],
    datas=[],
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)
pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

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

CMD运行错误提示

C:\Users\------\Desktop>open.exe
[8072] Module object for pyimod02_importers is NULL!
Traceback (most recent call last):
  File "PyInstaller\loader\pyimod02_importers.py", line 22, in <module>
  File "pathlib.py", line 14, in <module>
  File "urllib\parse.py", line 40, in <module>
ModuleNotFoundError: No module named 'ipaddress'
Traceback (most recent call last):
  File "PyInstaller\loader\pyiboot01_bootstrap.py", line 17, in <module>
ModuleNotFoundError: No module named 'pyimod02_importers'
[8072] Failed to execute script 'pyiboot01_bootstrap' due to unhandled exception!

解决步骤

1. 修复模块缺失问题

错误核心是ipaddress模块未被PyInstaller自动打包。尽管脚本未直接导入该模块,但urllib.parse依赖它,需手动添加到隐藏导入列表:

  • 打开.spec文件,修改hiddenimports参数为:
    hiddenimports=['ipaddress'],
    

2. 重新打包

在CMD中执行以下命令重新打包:

pyinstaller open.spec

3. 关于.spec文件的疑问

.spec文件是PyInstaller生成的配置文件,不需要额外下载。系统显示为通用文件是因为未关联合适的文本编辑器,直接用Notepad++、VS Code等文本编辑器打开即可编辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:15:34