当Firestore与Google Cloud Client Libraries for Python一起使用时,Pyinstaller生成的exe仅在调试模式下工作

时间:2019-01-15 19:23:16

标签: python google-cloud-firestore pyinstaller

我已经使用python,kivy和google cloud ml引擎开发了一个应用程序,并使用Pyinstaller进行了部署,到目前为止,该应用程序运行良好,我已经开始使用google cloud firestore,并且该应用程序在我的环境中运行良好。

当我开始部署时,由于必须使用Firestore,我不得不解决SSL和Pyinstaller中的钩子的问题,我也做到了,这要感谢stackoverflow和其他资源的大量帮助,但是“有趣”的事情与我的pyinstaller deploy软件包一起使用时,它仅在将exe配置中的调试标志设置为True时起作用,如果我将其设置为False,则exe会立即启动并关闭,而没有任何信息,如果我将debug设置为True,则该程序可以工作,但带有一些其他日志与以前的版本相比。

我只是不知道我做错了什么,还是应该只在调试模式下使用我的软件包并继续前进。

我在pyinstaller中使用此行: pyinstaller --distpath C:\ dev \ install stock.spec --workpath C:\ dev \ install \ build

我的stock.spec文件:

# -*- mode: python -*-
from kivy.deps import sdl2, glew

block_cipher = None

added_files = [
    ( 'layout.kv', '.' ),
    ( '*.jpg', '.' ),
    ( '*.png', '.' ),
    ( './samples', 'samples' ),
    ( 'config.json', '.'),
    ( 'env_path\\Lib\\site-packages\\grpc\\_cython\\_credentials\\roots.pem', 'grpc\\_cython\\_credentials\\'),
    ( 'env_path\\Lib\\site-packages\\tensorflow\\python\\_pywrap_tensorflow_internal.pyd', 'tensorflow\\python')
    ]

a = Analysis(['myapp.py'],
             pathex=['myapp_path', 'myapp_path\\tools', 'myapp_path\\object_detection'],
             binaries=[('<env_path>\\Library\\bin\\opencv_ffmpeg342_64.dll', '.')],
             datas=added_files,
             hiddenimports=['kivy.uix.recycleview', 'win32timezone'],
             hookspath=[],
             runtime_hooks=[],
             excludes=['./*.git'],
             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='myapp',
          debug=True,
          bootloader_ignore_signals=False,
          strip=False,
          upx=False,
          console=True )

coll = COLLECT(exe, Tree('myapp_path'),
               a.binaries,
               a.zipfiles,
               a.datas,
               *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
               strip=False,
               upx=False,
               name='myapp')

0 个答案:

没有答案