带有Pandas的PyInstaller创建了500 MB以上的exe

发布于 2021-01-29 17:50:00

我尝试使用PyInstaller 3.2.1创建exe文件,出于测试目的,我尝试为以下代码制作exe文件:

import pandas as pd
print('hello world')

经过相当长的时间(15分钟以上)后,我完成了620 MB的dist文件夹并构建了150 MB。我在Windows上使用Python 3.5.2 |
Anaconda自定义(64位)。可能值得注意的是,在dist文件夹中,mkl文件负责将近300 MB。我使用’pyinstaller.exe
foo.py’运行pyinstaller。我尝试使用–exclude-
module排除某些依赖项,但最终仍以巨大的文件结尾。我使用onefile还是onedir都没有任何区别。

我知道exe必须包含一些重要的文件,但是正常大小可以达到1 GB是否正常?我可以在必要时提供警告日志,或者提供任何有助于解决此问题的信息。

PS同时,我的同事用相同的示例脚本创建了一个exe文件,最终不到100 MB,不同之处在于他没有使用anaconda。可能是这样吗?

任何帮助将不胜感激。

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    PyInstaller从conda软件包创建大可执行文件,从pip软件包创建小可执行文件。从这个简单的python代码:

    from pandas import DataFrame as df
    print('h')
    

    我通过conda软件包获得了203MB可执行文件,通过pip软件包获得了30MB可执行文件。但是conda是纯virtualenv的不错替代。我可以使用conda和Jupyter进行开发,创建一些mycode.py(我可以在myfolder中将pypy文件下载为pypy文件)。但是接下来是我的最终解决方案:如果没有该解决方案,请安装Miniconda,然后从Windows“开始”菜单中打开Anaconda
    Prompt。

        cd myfolder
        conda create -n exe python=3
        activate exe
        pip install pandas pyinstaller pypiwin32
        echo hiddenimports = ['pandas._libs.tslibs.timedeltas'] > %CONDA_PREFIX%\Lib\site-packages\PyInstaller\hooks\hook-pandas.py
        pyinstaller -F mycode.py
    

    在我创建新环境“ exe”的地方,pypiwin32需要pyinstaller,但不会自动安装,hook-
    pandas.py需要与pandas一起编译。另外,导入子模块也无法帮助我优化可执行文件的大小。所以我不需要这个东西:

    from pandas import DataFrame as df
    

    但我只能使用通常的代码:

    import pandas as pd
    

    另外,在路径中使用国家字母可能会导致一些错误,因此英语用户帐户是开发工具的不错之选。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看