나는 Pyutster를 사용하여 docutils.rst가 사용되는 Kivy 응용 프로그램 용 Windows exe 배포 가능 패키지를 빌드하고 있습니다. PyInstaller .spec 파일에서 console = False로 설정하면 바이러스가보고됩니다. console = True이면 모든 것이 원활하게 실행됩니다. 패키지에서 docutils를 제외하면 바이러스는 전혀보고되지 않지만 특정 docutils 기능이 누락됩니다.PyInstaller console = False의 다른 옵션은?
불행히도 PyInstaller 개발 커뮤니티는 더 이상 이러한 문제를 해결하지 않고 바이러스 소프트웨어 공급 업체로 안내합니다 (https://github.com/pyinstaller/pyinstaller/issues?q=is%3Aissue+virus+is%3Aclosed 참조). 물론 이것은 대규모의 다양한 엔터프라이즈 커뮤니티를위한 애플리케이션을 개발할 때 실제로 불가능합니다.
질문 1 : 실행 파일에서 콘솔 파이썬 콘솔을 비활성화하는 방법을 아는 사람이 있습니까?
그렇지 않으면 패키지를 만드는 또 다른 방향을 발견해야합니다. 예를 들면 : How to compile python script to binary executable
질문 2 : + kivy + 멀티 + docutils.rst 파서 파이썬 : 당신이 기반으로하는 패키지로 이동할 수있는 가장 좋은 방법이 무엇인지 생각하십니까? - - 모드
: 파이썬 --
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')
'pyinstaller -w file.py'를 실행하십시오. – Eular
문제가 단지 포장 인 경우 바이러스가 아닌 것으로 확신하는 경우 해당 파일을 _ignore_에 설정하십시오 (예 : 공식 repo의 run.exe). 그것은 오류없이 패키지, 응용 프로그램을 사용해보십시오. 최종 .exe는 항상 바이러스 백신 알림없이 나를 위해 일했습니다. – KeyWeeUsr
안녕 KeyWeeUSr, 그게 내가 한거야. 그러나 타사 시스템에 데스크톱 응용 프로그램을 설치하면 다른 바이러스 스캐너가 동일한 바이러스를보고합니다. 내 바이러스 공급 업체 인 F-Secure는 .exe를 분석하여 오 탐지 (false positive)를 결론 내리고 데이터베이스를 업데이트합니다. 하지만 다른 모든 업체들은 어쩌고 .......? –