I tried most of the solutions in the web however none of them is working.
I have tested pyinstaller, py2exe, cxfreeze
none of this works when compiled on windows.
However when I compiles it with pyinstaller on linux.
the size of exe is around 500mb and int includes so may linux os files.
it works fine on windows as well as on wine under linux.
To reduce size I tried virtualenv, but no success.
Then
I tried to compile it on windows system but so far no success.
I am sharing basic loder main.py that needs to be converted in to exe. and a required compiled file (.pyd) named BasicClasses.....*.pyd
when running main.py it should show kivy app with one button.
the required package are imported in the main.py
can any one share the exe of main.py on windows system that can load BasicClasses.pyd
and steps. And if there is some error in my code please point it.
main.py
#!/bin/python3
##import kivy
import cython
import os
if os.name == 'nt':
from kivy_deps import sdl2, glew
import pyautogui
###import mouse
#import cv2
#import os, sys
#from pathlib import Path
#from kivy.resources import resource_add_path, resource_find
#from kivy.base import runTouchApp
from openpyxl import load_workbook
#from os.path import abspath
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.togglebutton import ToggleButton
from kivy.uix.switch import Switch
from kivy.uix.label import Label
#from kivy.uix.widget import Widget
##from kivy.uix.canvas import Canvas
from kivy.graphics import Rectangle, Color, Line
#from kivy.graphics import *
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.stacklayout import StackLayout
#from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.filechooser import FileChooserListView
from kivy.properties import ObjectProperty, StringProperty, ColorProperty,NumericProperty
from kivy.uix.textinput import TextInput
#from kivy.core.window import Window
#from kivy.clock import Clock
from kivy.metrics import dp
from kivy.effects.dampedscroll import DampedScrollEffect
##from kivy.effects.scrolleffect import ScrollEffect
#from functools import partial
#from kivy.animation import Animation
import webbrowser
from kivy.config import Config
from BasicClasses import *
root = MainWindow()
if __name__=="__main__":
root.run()
BasicClasses.py
import os
import sys
import cython
import kivy
#import BasicClasses
import pyautogui
import openpyxl
from openpyxl import load_workbook
###import mouse
#import cv2
#import os, sys
#from pathlib import Path
#from kivy.resources import resource_add_path, resource_find
#from kivy.base import runTouchApp
from openpyxl import load_workbook
#from os.path import abspath
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.togglebutton import ToggleButton
from kivy.uix.switch import Switch
from kivy.uix.label import Label
#from kivy.uix.widget import Widget
##from kivy.uix.canvas import Canvas
from kivy.graphics import Rectangle, Color, Line
#from kivy.graphics import *
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.stacklayout import StackLayout
#from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.filechooser import FileChooserListView
from kivy.properties import ObjectProperty, StringProperty, ColorProperty,NumericProperty
from kivy.uix.textinput import TextInput
#from kivy.core.window import Window
#from kivy.clock import Clock
from kivy.metrics import dp
from kivy.effects.dampedscroll import DampedScrollEffect
##from kivy.effects.scrolleffect import ScrollEffect
#from functools import partial
#from kivy.animation import Animation
#import webbrowser
from kivy.config import Config
ICON='./icon.ico'
Config.set('kivy','window_icon',ICON)
if os.name == 'nt':
from kivy_deps import sdl2, glew
class Main(Button):
def __init__(self,**kwargs):
super().__init__(**kwargs)
self.text='HI'
class MainWindow(App):
def __init__(self,**kwargs):
super().__init__(**kwargs)
global ICON
self.icon=ICON
print('MainWindow in Classes')
def build(self):
return Main()
if __name__=='__main__':
MainWindow().run()
BasicClasses.py can be compiled in binary using cython package with setup.py and compile.bat file as
setup.py
from distutils.core import Extension, setup
from Cython.Build import cythonize
import os
import sys
import cython
#import BasicClasses
import pyautogui
import openpyxl
from openpyxl import load_workbook
###import mouse
#import cv2
#import os, sys
#from pathlib import Path
#from kivy.resources import resource_add_path, resource_find
#from kivy.base import runTouchApp
from openpyxl import load_workbook
#from os.path import abspath
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.button import Button
from kivy.uix.togglebutton import ToggleButton
from kivy.uix.switch import Switch
from kivy.uix.label import Label
#from kivy.uix.widget import Widget
##from kivy.uix.canvas import Canvas
from kivy.graphics import Rectangle, Color, Line
#from kivy.graphics import *
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.pagelayout import PageLayout
from kivy.uix.stacklayout import StackLayout
#from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.screenmanager import ScreenManager,Screen
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.filechooser import FileChooserListView
from kivy.properties import ObjectProperty, StringProperty, ColorProperty,NumericProperty
from kivy.uix.textinput import TextInput
#from kivy.core.window import Window
#from kivy.clock import Clock
from kivy.metrics import dp
from kivy.effects.dampedscroll import DampedScrollEffect
##from kivy.effects.scrolleffect import ScrollEffect
#from functools import partial
#from kivy.animation import Animation
#import webbrowser
if os.name == 'nt':
from kivy_deps import sdl2, glew
# define an extension that will be cythonized and compiled
ext = Extension(name="BasicClasses", sources=["BasicClasses.py"])
setup(ext_modules=cythonize(ext))
##run as
##python setup.py build_ext --inplace
##python3 setup.py build_ext --inplace
compile.bat
python setup.py build_ext --inplace
python3 setup.py build_ext --inplace