ModuleNotFoundError:没有名为'pandas._libs.tslibs.timedeltas'的模块

时间:2017-12-02 11:16:13

标签: python-3.x pandas pyinstaller

我是Python的学习者。执行我的脚本时出现问题。 由于

,它在Pyinstaller打包时显示failed to execute script
  

ModuleNotFoundError:没有名为'pandas._libs.tslibs.timedeltas'的模块。

我该如何解决?

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

2 个答案:

答案 0 :(得分:1)

导航至您的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进行编译。

答案 1 :(得分:0)

在遇到同样的问题后,我找到了解决办法。

.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