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

macOS+Anaconda3环境下PyInstaller编译Python脚本遇TypeError错误求助

解决PyInstaller打包时的sysconfig TypeError问题

嘿,我之前在Anaconda环境里打包Python脚本时也碰到过一模一样的错误!这是因为PyInstaller的hook脚本和Anaconda自带的Python 3.6版本不兼容——sysconfig._get_sysconfigdata_name()这个函数在Anaconda的Python 3.6里需要传入参数,但PyInstaller的hook文件里没传,所以才报了这个TypeError。

下面是几个亲测有效的解决办法,按优先级推荐:

方法一:安装兼容版本的PyInstaller

针对Python 3.6,PyInstaller 3.6版本和Anaconda的兼容性最好。你可以先卸载当前的PyInstaller,再安装指定版本:

pip uninstall pyinstaller -y
pip install pyinstaller==3.6

装完之后再重新跑你的打包命令:

pyinstaller --onefile /Directory/file.py

方法二:手动修复PyInstaller的hook文件

如果不想换版本,也可以直接修改出错的hook文件:

  1. 打开路径 /anaconda3/lib/python3.6/site-packages/PyInstaller/hooks/hook-sysconfig.py
  2. 找到第42行的代码:
    hiddenimports = [sysconfig._get_sysconfigdata_name()]
    
  3. 修改成下面这样,给函数传入必要的参数:
    hiddenimports = [sysconfig._get_sysconfigdata_name(sys.version_info)]
    

保存文件后再重新打包就没问题了。

方法三:用干净的虚拟环境打包

有时候Anaconda的base环境依赖太杂,容易出各种奇怪的问题。你可以创建一个专门的虚拟环境来打包:

# 创建一个Python3.6的虚拟环境
conda create -n py_pack_env python=3.6
# 激活这个环境
conda activate py_pack_env
# 安装你的脚本需要的依赖,再装PyInstaller3.6
pip install 你的依赖包名称 pyinstaller==3.6
# 执行打包命令
pyinstaller --onefile /Directory/file.py

我自己当时用方法一就搞定了,你可以先试试这个,不行再换其他方法~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:46:05