如何使用Kivy和mapview部署PyCharm项目?

时间:2020-07-27 00:37:40

标签: python kivy pyinstaller kivy-language

我想用Kivy和MapView部署一个Python项目。我使用PyCharm进行开发,当我用它运行项目时,一切都很好。 我还尝试使用python IDLE编译和运行我的项目,它也很好用!

我按照PyInstaller(https://www.pyinstaller.org/#pyinstaller-quickstart)的说明进行操作,并创建了文件夹。问题是我的.exe文件不起作用... cmd窗口已打开,但立即关闭。.

如果您需要更多说明,请告诉我:)谢谢!

1 个答案:

答案 0 :(得分:0)

这是我的main.py

from mapview import MapView, MapMarker
from kivy.app import App

class MapViewApp(App):
    def build(self):
        map = MapView(zoom=15, lat=39.566848, lon=-76.377053, double_tap_zoom=True)
        marker_1 = MapMarker(lat=39.566848, lon=-76.377053, source='marker.png')
        map.add_marker(marker_1)
        return map

MapViewApp().run()

还有我的main.spec文件:

# -*- mode: python ; coding: utf-8 -*-

from kivy.deps import sdl2, glew

block_cipher = None


a = Analysis(['main.py'],
             pathex=['C:\\Users\\John\\Documents\\PyCharmProjects\\MapViewPlay'],
             binaries=[],
             datas=[('marker.png', '.')],
             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,
          a.binaries,
          a.zipfiles,
          a.datas,
          *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
          name='main',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )

还有我的目录结构:

-MapViewPlay

    main.py

    main.spec

    -mapview

        __init__.py

        types.py

        utils.py

        .

        .

        .

上面的mapview文件夹是刚刚复制到其中的garden\garden.mapview\mapview文件夹(使用garden install --app mapview安装),其余的garden文件夹已删除。我认为这是一个hack。您不必这样做,但是建议的方法却行不通。我以pyinstaller的身份运行pyinstaller main.spec