Python Kivy packing to exe

允我心安 提交于 2020-06-26 07:56:15

问题


I am trying to packing kivy for windows. I am using windows 10 with python 3.7.2 with kivy 1.10.1. With the reference of this documentation I have done exe building successfully but when I run exe it shows the following error
Error loading Python DLL 'C:\Users\acer\Desktop\coding\build\hello\python37.dll'. LoadLibrary: The specified module could not be found.
Thanks for helping me :D and This is the Specs i got from python -m PyInstaller --name hello main.py
hello.spec


    # -*- mode: python -*-

    block_cipher = None


    a = Analysis(['main.py'],
                 pathex=['C:\\Users\\acer\\Desktop\\coding'],
                 binaries=[],
                 datas=[],
                 hiddenimports=[],
                 hookspath=[],
                 runtime_hooks=[],
                 excludes=[],
                 win_no_prefer_redirects=False,
                 win_private_assemblies=False,
                 cipher=block_cipher,
                 noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
                 cipher=block_cipher)
    exe = EXE(pyz,
              a.scripts,
              [],
              exclude_binaries=True,
              name='hello',
              debug=False,
              bootloader_ignore_signals=False,
              strip=False,
              upx=True,
              console=True )
    coll = COLLECT(exe,
                   a.binaries,
                   a.zipfiles,
                   a.datas,
                   strip=False,
                   upx=True,
                   name='hello')

This is mine code block


        import kivy
        from kivy.app import App
        from kivy.uix.label import Label
        from kivy.uix.button import Button
        from kivy.uix.textinput import TextInput
        from kivy.uix.floatlayout import FloatLayout
        from kivy.uix.widget import Widget

    import sys

    kivy.require('1.10.1')

    class Main(App):
                def build(self):
            self.UIlayout = FloatLayout(size=(300,300))

            self.textarea = TextInput(font_size=18)

            self.savebtn = Button(text="save",size_hint=(.1,.1),pos_hint={"bottom":0})
            self.exitbtn = Button(text="exit",size_hint=(.1,.1),pos_hint={"right":1})

            self.exitbtn.on_press = lambda: sys.exit(0)
            self.savebtn.on_press = self.savefile

            self.UIlayout.add_widget(self.textarea)

            self.UIlayout.add_widget(self.savebtn)
            self.UIlayout.add_widget(self.exitbtn)

           return self.UIlayout

               def savefile(self):
                    print(self.textarea.text)
                       with open("filename.py",'w') as f:
                           f.write(self.textarea.text)  
    Main().run()


This is warn-hello.txt


        This file lists modules PyInstaller was not able to find. This does not
        necessarily mean this module is required for running you program. Python and
        Python 3rd-party packages include a lot of conditional or optional module. 
        For
        example the module 'ntpath' only exists on Windows, whereas the module
    'posixpath' only exists on Posix systems.

    Types if import:
    * top-level: imported at the top-level - look at these first
    * conditional: imported within an if-statement
    * delayed: imported from within a function
    * optional: imported within a try-except-statement

    IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
               yourself tracking down the missing module. Thanks!

    missing module named 'win32com.gen_py' - imported by win32com (conditional, optional), C:\Users\acer\AppData\Local\Programs\Python\Python37\lib\site-packages\PyInstaller\loader\rthooks    \pyi_rth_win32comgenpy.py (top-level)
    missing module named pyimod03_importers - imported by C:\Users\acer\AppData\Local\Programs\Python\Python37\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_pkgres.py (top-level)
    missing module named _uuid - imported by uuid (optional)
    missing module named __builtin__ - imported by PIL.Image (optional), pkg_resources._vendor.pyparsing (conditional)
    missing module named ordereddict - imported by pkg_resources._vendor.pyparsing (optional)
    missing module named 'com.sun' - imported by pkg_resources._vendor.appdirs (delayed, conditional, optional)
    missing module named com - imported by pkg_resources._vendor.appdirs (delayed)
    missing module named 'pkg_resources.extern.pyparsing' - imported by pkg_resources._vendor.packaging.markers (top-level), pkg_resources._vendor.packaging.requirements (top-level)
    missing module named StringIO - imported by pygments.util (conditional), pkg_resources._vendor.six (conditional)
    missing module named __main__ - imported by pkg_resources (delayed, optional)
    missing module named pkg_resources.extern.packaging - imported by pkg_resources.extern (top-level), pkg_resources (top-level)
    missing module named pkg_resources.extern.appdirs - imported by pkg_resources.extern (top-level), pkg_resources (top-level)
    missing module named 'pkg_resources.extern.six.moves' - imported by pkg_resources (top-level), pkg_resources._vendor.packaging.requirements (top-level)
    missing module named pkg_resources.extern.six - imported by pkg_resources.extern (top-level), pkg_resources (top-level), pkg_resources.py31compat (top-level)
    missing module named 'multiprocessing.forking' - imported by C:\Users\acer\AppData\Local\Programs\Python\Python37\lib\site-packages\PyInstaller\loader\rthooks\pyi_rth_multiprocessing.py (optional)
    missing module named multiprocessing.get_context - imported by multiprocessing (top-level), multiprocessing.pool (top-level), multiprocessing.managers (top-level), multiprocessing.sharedctypes (top-level)
    missing module named multiprocessing.TimeoutError - imported by multiprocessing (top-level), multiprocessing.pool (top-level)
    missing module named multiprocessing.BufferTooShort - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
    missing module named multiprocessing.AuthenticationError - imported by multiprocessing (top-level), multiprocessing.connection (top-level)
    missing module named multiprocessing.set_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
    missing module named multiprocessing.get_start_method - imported by multiprocessing (top-level), multiprocessing.spawn (top-level)
    missing module named multiprocessing.Event - imported by multiprocessing (optional), kivy.clock (optional)
    missing module named resource - imported by posix (top-level), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named posix - imported by os (conditional, optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named _posixsubprocess - imported by subprocess (conditional), multiprocessing.util (delayed), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named readline - imported by cmd (delayed, conditional, optional), code (delayed, conditional, optional), pdb (delayed, optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named _winreg - imported by platform (delayed, optional), pygame (conditional), pygame.sysfont (conditional), C:\Users\acer\Desktop\coding\main.py (top-level), pkg_resources._vendor.appdirs     (delayed, conditional), pygments.formatters.img (optional)
    missing module named _scproxy - imported by urllib.request (conditional)
    missing module named java - imported by platform (delayed), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named 'java.lang' - imported by platform (delayed, optional), C:\Users\acer\Desktop\coding\main.py (top-level), xml.sax._exceptions (conditional)
    missing module named vms_lib - imported by platform (delayed, conditional, optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named termios - imported by tty (top-level), getpass (optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named urllib.FancyURLopener - imported by urllib (conditional, optional), pygments.lexers._sourcemod_builtins (conditional, optional)
    missing module named urllib.urlretrieve - imported by urllib (conditional, optional), pygments.lexers._php_builtins (conditional, optional)
    missing module named urllib.urlopen - imported by urllib (conditional, optional), pygments.lexers._lua_builtins (conditional, optional), pygments.lexers._postgres_builtins (conditional, optional)
    missing module named urllib.pathname2url - imported by urllib (conditional), kivy.core.video.video_gstplayer (conditional), kivy.core.audio.audio_gstplayer (conditional)
    missing module named grp - imported by shutil (optional), tarfile (optional), pathlib (delayed), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named 'org.python' - imported by pickle (optional), C:\Users\acer\Desktop\coding\main.py (top-level), xml.sax (delayed, conditional)
    missing module named pwd - imported by posixpath (delayed, conditional), shutil (optional), tarfile (optional), http.server (delayed, optional), webbrowser (delayed), pathlib (delayed, conditional, optional), netrc    (delayed, conditional), getpass (delayed), C:\Users\acer\Desktop\coding\main.py (top-level), docutils.frontend (delayed, conditional, optional)
    missing module named org - imported by copy (optional), C:\Users\acer\Desktop\coding\main.py (top-level)
    missing module named ios - imported by kivy.metrics (delayed, conditional), kivy.core.window (delayed)
    missing module named android - imported by kivy.metrics (delayed, conditional), kivy.core.window (delayed, conditional), kivy.base (delayed, optional), kivy.input.providers.androidjoystick (optional),     kivy.core.clipboard.clipboard_android (top-level), kivy.support (delayed, optional), kivy.core.window.window_pygame (conditional, optional)
    missing module named jnius - imported by kivy.metrics (delayed, conditional), kivy.core.clipboard.clipboard_android (top-level), kivy.core.camera.camera_android (top-level)  
    missing module named Queue - imported by kivy.compat (optional), pygame.threads (conditional)
    missing module named ConfigParser - imported by kivy.config (optional)
    missing module named Leap - imported by kivy.input.providers.leapfinger (delayed)
    missing module named copy_reg - imported by cStringIO (top-level), pygame (conditional)
    missing module named 'pygame._view' - imported by pygame (delayed)   
    missing module named pygame.sdlmain_osx - imported by pygame (top-level), pygame.macosx (top-level)
    missing module named OpenGL - imported by pygame (delayed)
    missing module named numpy - imported by PIL.ImageFilter (optional), pygame._numpysurfarray (top-level), pygame._numpysndarray (top-level), pygame (delayed), kivy.core.camera.camera_picamera (top-    level), kivy.core.camera.camera_android (delayed)
    missing module named 'pygame.movie' - imported by pygame (optional)
    missing module named pygame.SRCALPHA - imported by pygame (top-level), pygame.ftfont (top-level)
    missing module named Py25Queue - imported by pygame.threads (conditional)
    missing module named cStringIO - imported by pygame.compat (conditional), pygments.util (conditional)
    missing module named fcntl - imported by kivy.input.providers.hidinput (conditional), kivy.input.providers.linuxwacom (conditional)
    missing module named oscpy - imported by kivy.input.providers.tuio (delayed, optional)
    missing module named olefile - imported by PIL.FpxImagePlugin (top-level), PIL.MicImagePlugin (top-level)
    missing module named Tkinter - imported by PIL.ImageTk (conditional)
    missing module named UserDict - imported by PIL.PdfParser (optional)
    missing module named 'PySide.QtCore' - imported by PIL.ImageQt (conditional, optional)
    missing module named 'PyQt4.QtCore' - imported by PIL.ImageQt (conditional, optional)
    missing module named 'PySide2.QtCore' - imported by PIL.ImageQt (conditional, optional) 
    missing module named PySide2 - imported by PIL.ImageQt (conditional, optional)    
    missing module named 'PyQt5.QtCore' - imported by PIL.ImageQt (conditional, optional)
    missing module named pathlib2 - imported by PIL.Image (optional)
    missing module named cffi - imported by PIL.Image (optional), PIL.PyAccess (top-level), PIL.ImageTk (delayed, conditional, optional)
    missing module named PIL._imagingagg - imported by PIL (delayed, conditional, optional), PIL.ImageDraw (delayed, conditional, optional)
    missing module named smb - imported by kivy.loader (delayed, conditional, optional)
    missing module named urllib2 - imported by kivy.loader (delayed, conditional)
    missing module named 'pyobjus.dylib_manager' - imported by kivy.core.audio.audio_avplayer (top-level), kivy.core.clipboard.clipboard_nspaste (optional)
    missing module named pyobjus - imported by kivy.core.audio.audio_avplayer (top-level), kivy.core.clipboard.clipboard_nspaste (optional)
    missing module named new - imported by kivy.weakmethod (conditional)
    missing module named 'ffpyplayer.tools' - imported by kivy.core.image.img_ffpyplayer (top-level), kivy.core.video.video_ffpyplayer (optional), kivy.core.audio.audio_ffpyplayer (optional)
    missing module named 'ffpyplayer.player' - imported by kivy.core.video.video_ffpyplayer (optional), kivy.core.audio.audio_ffpyplayer (optional)
    missing module named ffpyplayer - imported by kivy.core.image.img_ffpyplayer (top-level), kivy.core.video.video_ffpyplayer (optional), kivy.core.audio.audio_ffpyplayer (optional)
    missing module named dbus - imported by kivy.core.clipboard.clipboard_dbusklipper (optional)
    missing module named ffmpeg - imported by kivy.core.video.video_ffmpeg (optional)
    missing module named 'ffpyplayer.pic' - imported by kivy.core.image.img_ffpyplayer (top-level)
    missing module named pygments.formatters.BBCodeFormatter - imported by pygments.formatters (top-level), kivy.uix.codeinput (top-level)
    missing module named ctags - imported by pygments.formatters.html (optional)
    missing module named colorama - imported by pygments.cmdline (delayed, conditional, optional)
    missing module named kivy.lib.vidcore_lite.egl - imported by kivy.lib.vidcore_lite (top-level), kivy.core.window.window_egl_rpi (top-level)
    missing module named kivy.lib.vidcore_lite.bcm - imported by kivy.lib.vidcore_lite (top-level), kivy.core.window.window_egl_rpi (top-level)
    missing module named 'twisted.internet' - imported by kivy.support (delayed)
    missing module named gobject - imported by kivy.support (delayed, optional)
    missing module named gi - imported by kivy.support (delayed, optional), kivy.core.clipboard.clipboard_gtk3 (top-level)
    missing module named enchant - imported by kivy.core.spelling.spelling_enchant (top-level)
    missing module named 'gi.repository' - imported by kivy.core.clipboard.clipboard_gtk3 (top-level), kivy.core.camera.camera_gi (top-level)
    missing module named AppKit - imported by kivy.core.spelling.spelling_osxappkit (top-level)
    missing module named android_mixer - imported by kivy.core.audio.audio_pygame (conditional, optional)
    missing module named 'android.mixer' - imported by kivy.core.audio.audio_pygame (conditional, optional)
    missing module named cv2 - imported by kivy.core.camera.camera_opencv (optional), kivy.core.camera.camera_android (delayed)
    missing module named Image - imported by kivy.core.image.img_pil (optional), docutils.writers._html_base (optional), docutils.writers.odf_odt (optional), docutils.parsers.rst.directives.images (optional)
    missing module named 'opencv.highgui' - imported by kivy.core.camera.camera_opencv (optional)
    missing module named opencv - imported by kivy.core.camera.camera_opencv (optional)
    missing module named picamera - imported by kivy.core.camera.camera_picamera (top-level)
    missing module named roman - imported by docutils.writers.latex2e (optional), docutils.writers.manpage (optional)
    missing module named elementtree - imported by docutils.writers.odf_odt (optional)
    missing module named 'android.runnable' - imported by kivy.core.clipboard.clipboard_android (top-level)


Thanks for helping.


回答1:


Add the following into your spec:

Snippets - spec

# -*- mode: python -*-
from kivy.deps import sdl2, glew
. 
.
.
coll = COLLECT(exe, Tree('C:\\Users\\acer\\Desktop\\coding\\')
               a.binaries,
               a.zipfiles,
               a.datas,
               *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
               strip=False,
               upx=True,
               name='hello')

Output

Environment

  • Windows 10 Home
  • PyInstaller v3.4
  • Python v3.7.2



来源:https://stackoverflow.com/questions/55181221/python-kivy-packing-to-exe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!