关于python 3.x:ModuleNotFoundError:没有名为’pandas._libs.tslibs.timedeltas’的模块

ModuleNotFoundError: No module named 'pandas._libs.tslibs.timedeltas'

我是Python的学习者。 执行我的脚本时出现问题。
由于以下原因,Pyinstaller打包时显示failed to execute script

ModuleNotFoundError: No module named 'pandas._libs.tslibs.timedeltas'.

我该如何解决?

我正在使用在Windows 10上运行的Python 3.6,Pyinstaller 3.4。


导航到您的Python文件夹中的pyinstaller文件夹-安装该文件夹。可能是与此类似的路径:

1
C:\\Users\\yourName\\AppData\\Local\\Programs\\Python\\Python36-32\\Lib\\site-packages\\PyInstaller\\hooks

在此文件夹中,找到名为hook.pandas.py的文件(如果该文件不在文件夹中),则需要创建它。打开您的IDE或您一直在编写Python脚本的任何地方,然后创建一个新文件。这恰恰是您的hook-pandas.py的样子:

1
hiddenimports = ['pandas._libs.tslibs.timedeltas']

仅需一行。无需编辑或创建其他任何内容。保存,关闭并尝试再次使用Pyinstaller进行编译。这种方法的另一个好处是,在使用其他程序时,您无需编辑创建的每个规范文件。


在遇到相同问题后,我找到了解决方案。

在您的.spec文件中,编辑hiddenimport以添加以下内容:

1
2
3
4
hiddenimport=[
    #all your previous hidden imports
    'pandas', 'pandas._libs.tslibs.timedeltas'
]

如果这次您仍然有与scipy相关的错误消息(例如我),请添加以下内容:

1
2
3
4
5
hiddenimport=[
    #all your previous hidden imports
    'pandas', 'pandas._libs.tslibs.timedeltas'
    'scipy', 'scipy._lib.messagestream'
]

希望您的脚本应该不错!

scipy修复程序的来源:此处