size of executable using pyinstaller and numpy

后端 未结 2 530
执念已碎
执念已碎 2021-01-07 01:38

I wrote a short program main.py using numpy and Qt:

from PyQt5 import QtWidgets
import numpy as np
import sys

if __name__ == \'__main__\':
             


        
相关标签:
2条回答
  • 2021-01-07 02:14

    Thanks to the user balletpiraat I found a solution.

    Install numpy with: conda install -c conda-forge numpy

    To test this I created two anaconda environments. Environment "normalnumpy" was created with:

    conda create -n normalnumpy python=3.7
    activate normalnumpy
    conda install numpy
    pip install pyinstaller
    

    resulting in:

    altgraph                  0.16.1                    <pip>
    blas                      1.0                         mkl
    certifi                   2018.10.15               py37_0
    future                    0.16.0                    <pip>
    icc_rt                    2017.0.4             h97af966_0
    intel-openmp              2019.0                      118
    macholib                  1.11                      <pip>
    mkl                       2019.0                      118
    mkl_fft                   1.0.6            py37hdbbee80_0
    mkl_random                1.0.1            py37h77b88f5_1
    numpy                     1.15.2           py37ha559c80_0
    numpy-base                1.15.2           py37h8128ebf_0
    pefile                    2018.8.8                  <pip>
    pip                       10.0.1                   py37_0
    PyInstaller               3.4                       <pip>
    python                    3.7.0                hea74fb7_0
    pywin32-ctypes            0.2.0                     <pip>
    setuptools                40.4.3                   py37_0
    vc                        14.1                 h0510ff6_4
    vs2015_runtime            14.15.26706          h3a45250_0
    wheel                     0.32.1                   py37_0
    wincertstore              0.2                      py37_0
    

    Environment "extranumpy" was created with:

    conda create -n extranumpy python=3.7
    activate extranumpy
    conda install -c conda-forge numpy
    pip install pyinstaller
    

    resulting in:

    altgraph                  0.16.1                    <pip>
    blas                      1.1                    openblas    conda-forge
    certifi                   2018.10.15            py37_1000    conda-forge
    future                    0.16.0                    <pip>
    libflang                  5.0.0             vc14_20180208  [vc14]  conda-forge
    llvm-meta                 5.0.0                         0    conda-forge
    macholib                  1.11                      <pip>
    numpy                     1.15.2          py37_blas_openblash8d851b4_1  [blas_openblas]  conda-forge
    openblas                  0.2.20                   vc14_8  [vc14]  conda-forge
    openmp                    5.0.0                    vc14_1  [vc14]  conda-forge
    pefile                    2018.8.8                  <pip>
    pip                       10.0.1                   py37_0
    PyInstaller               3.4                       <pip>
    python                    3.7.0                hea74fb7_0
    pywin32-ctypes            0.2.0                     <pip>
    setuptools                40.4.3                   py37_0
    vc                        14                            0    conda-forge
    vs2015_runtime            14.15.26706          h3a45250_0
    wheel                     0.32.1                   py37_0
    wincertstore              0.2                      py37_0
    

    I tested both environments with "main.py":

    import numpy as np
    if __name__ == '__main__':
        test = np.array([42])
        print(test)
    

    and

    pyinstaller --onefile main.py
    

    the "normalnumpy" executable is 228MB, the "extranumpy" executable is 10MB.

    0 讨论(0)
  • 2021-01-07 02:24

    Have you tried excluding modules? This is a common problem. Also you might want to check out:

    Reducing size of pyinstaller exe

    Worth mention, are you using Anaconda? A fresh oracle box python system and less of a huge file.

    I believe in there docs somewhere you can adjust where the directories are found.

    https://pythonhosted.org/PyInstaller/spec-files.html

    0 讨论(0)
提交回复
热议问题