PyInstaller控制台的其他选项=False?

2024-09-30 01:22:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用PyInstaller为Kivy应用程序构建一个windowsexe可分发包,其中文档.rst正在被使用。在PyInstaller.spec文件中设置console=False时,会报告病毒。当console=True时,一切运行顺利。当排除包中的docutils时,根本没有报告病毒,但是我缺少特定的docutils功能。在

不幸的是,PyInstaller开发社区不想再解决这些问题,也不想让您找到病毒软件供应商。。。。(参见:https://github.com/pyinstaller/pyinstaller/issues?q=is%3Aissue+virus+is%3Aclosed)。当然,在为大型多元化企业社区开发应用程序时,这实际上是不可能的。在

问题1:有人知道如何在可执行文件中禁用控制台python控制台吗?在

否则我应该找到另一个方向来构建一个包。例如: How to compile python script to binary executable

问题2:对于基于python+kivy+multiprocessing+文档.rst解析器?在

为了完整起见,我添加了我实际的PyInstaller规范文件:

-模式:python--

import os
from os.path import join

from kivy import kivy_data_dir
from kivy.deps import sdl2, glew
from kivy.tools.packaging import pyinstaller_hooks as hooks

block_cipher = None
kivy_deps_all = hooks.get_deps_all()
kivy_factory_modules = hooks.get_factory_modules()

datas = [
    (join('common', '*.ini'), 'common'),
    (join('common', '*.ttf'), 'common')
]

# list of modules to exclude from analysis
excludes = ['Tkinter', '_tkinter', 'twisted', 'pygments']

# list of hiddenimports
hiddenimports = kivy_deps_all['hiddenimports'] + kivy_factory_modules
hiddenimports += ['starmeter']

# binary data
sdl2_bin_tocs = [Tree(p) for p in sdl2.dep_bins]
glew_bin_tocs = [Tree(p) for p in glew.dep_bins]
bin_tocs = sdl2_bin_tocs + glew_bin_tocs

# assets
kivy_assets_toc = Tree(kivy_data_dir, prefix=join('kivy_install', 'data'))
source_assets_toc = Tree('images', prefix='images')
assets_toc = [kivy_assets_toc, source_assets_toc]

tocs = bin_tocs + assets_toc

a = Analysis(['wflmain.py'],
             pathex=[os.getcwd()],
             binaries=None,
             datas=datas,
             hiddenimports=hiddenimports,
             hookspath=[],
             runtime_hooks=[],
             excludes=excludes,
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher)

pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher)

exe1 = EXE(pyz,
           a.scripts,
           name='sgc',
           exclude_binaries=True,
           icon=join('images', 'sgc.ico'),
           debug=False,
           strip=False,
           upx=True,
           console=False)

coll = COLLECT(exe1,
               a.binaries,
               a.zipfiles,
               a.datas,
               *tocs,
               strip=False,
               upx=True,
               name='sgc')

Tags: fromimportfalsetruedatabincipherhooks
1条回答
网友
1楼 · 发布于 2024-09-30 01:22:58

Question 1: Does anybody know how to disable the console python console in an executable?

noconsole作为参数@CLI传递:

 pyinstaller  noconsole  onefile <filename>

Question 2: what do you think is the best option to move into for a package based on: python + kivy + multiprocessing + docutils.rst parser ?

Pyinstaller在编译依赖项方面做得很好,因此如果您没有遇到任何问题,也可以这样做!在

相关问题 更多 >

    热门问题