【问题标题】:ModuleNotFoundError: No module named 'pandas._libs.tslibs.timedeltas'ModuleNotFoundError:没有名为“pandas._libs.tslibs.timedeltas”的模块
【发布时间】:2018-05-16 09:08:34
【问题描述】:
我是 Python 的学习者。执行我的脚本时出现问题。
由于
,它在 Pyinstaller 打包时显示
failed to execute script
ModuleNotFoundError:没有名为“pandas._libs.tslibs.timedeltas”的模块。
我该如何解决?
我使用的是 Python 3.6,Pyinstaller 3.4,在 Windows 10 上运行。
【问题讨论】:
标签:
python-3.x
pandas
pyinstaller
【解决方案1】:
在遇到同样的问题后,我找到了解决方案。
在您的 .spec 文件中编辑 hiddenimport 以添加以下内容:
hiddenimport=[
#all your previous hidden imports
'pandas', 'pandas._libs.tslibs.timedeltas'
]
如果这次你仍然有与 scipy 相关的错误信息(像我一样),请添加以下内容:
hiddenimport=[
#all your previous hidden imports
'pandas', 'pandas._libs.tslibs.timedeltas'
'scipy', 'scipy._lib.messagestream'
]
希望你的脚本能顺利运行!
scipy 修复的来源:here
【解决方案2】:
导航到 Python 文件夹中的 pyinstaller 文件夹 - 它的安装位置。可能是这样的路径:
C:\Users\yourName\AppData\Local\Programs\Python\Python36-32\Lib\site-packages\PyInstaller\hooks
在此文件夹中,找到名为hook.pandas.py 的文件,如果不在该文件夹中,则需要创建它。打开您的 IDE 或您一直在编写 Python 脚本的任何地方并创建一个新文件。这正是您的hook-pandas.py 的样子:
hiddenimports = ['pandas._libs.tslibs.timedeltas']
那一行就是你所需要的。无需编辑或创建任何其他内容。保存、关闭并再次尝试使用 Pyinstaller 进行编译。这种方法的另一个好处是您在处理其他程序时不需要编辑您创建的每个规范文件。