我正在尝试冻结一个简单的Python文件,该文件仅包含以下内容:
import pandas
但是我收到以下错误:
AttributeError: Failed to retrieve attribute __version__ from module dataclasses
我正在使用以下版本:
全部运行在 Anaconda 和 Windows 上。
这个问题始于一个更大的文件,我已设法将其减少到这个最小的示例。
使用PyInstaller与pandas打包Python代码时,经常会由于版本冲突或缺少依赖项而出现此错误。以下是问题和潜在解决方案的细分:
理解错误
PyInstaller 尝试捆绑脚本所需的所有模块。 AttributeError 表明与 dataclasses 模块发生冲突,可能由 pandas 内部使用。如果出现以下情况,就会发生这种情况:
解决方案
更新数据类:
如果您使用的 Python 版本早于 3.7,则默认情况下不包含 dataclasses 模块。安装或升级:
pip install --upgrade dataclasses
确保它与您的Python和pandas版本兼容。
检查环境:
隐藏进口:
PyInstaller 可能不会自动检测所有导入。尝试添加隐藏的导入:
pyinstaller --hidden-import=dataclasses your_script.py
隐藏进口(熊猫):
在某些情况下,可能还需要显式地将 pandas 包含为隐藏导入:
pyinstaller --hidden-import=pandas --hidden-import=dataclasses your_script.py
更新 PyInstaller:
如果问题仍然存在,请尝试将 PyInstaller 升级到最新版本:
pip install --upgrade pyinstaller
其他提示