내 PyQt4 애플리케이션의 py2exe 바이너리가 화면에서 잠깐 깜박였다가 사라집니다. 왜 그런지는 모르겠지만 이전에 있었던 일이 여기에 있습니다.py2exe : 생성 된 EXE가로드되지 않습니다.
내 응용 프로그램은 (Exe에서)로드 할 때 SVG 이미지를 표시하지 않으므로 약간 파고 들어가서 내 setup.py
을 수정해야한다는 것을 알았습니다. qt.conf
및 일부 DLL
그런 다음 qt.conf
이 포함 된 후 바이너리 로딩이 중지되었습니다.
qt.conf
와 함께 연주하고 내 exe는 내가
qt.conf
삭제하지 않는
를로드하지 않는 것을 발견, 그래서 나는 그것이 잘못된 생각합니다. 가 여기 내 qt.conf
: 나는 절대 경로, 슬래시, 백 슬래시와 함께 그것을 시도
[Paths]
Plugins = plugins
, 당신은 그것을 이름을 지정합니다. 나는 심지어이 파일과 함께 전체 PyQt4 폴더를 복사했지만 여전히 운이 없다. 만약 내가 기억
import os, sys, glob
from distutils.core import setup
from py2exe.build_exe import py2exe
def find_data_files(source,target,patterns):
if glob.has_magic(source) or glob.has_magic(target):
raise ValueError("Magic not allowed in src, target")
ret = {}
for pattern in patterns:
pattern = os.path.join(source,pattern)
for filename in glob.glob(pattern):
if os.path.isfile(filename):
targetpath = os.path.join(target,os.path.relpath(filename,source))
path = os.path.dirname(targetpath)
ret.setdefault(path,[]).append(filename)
return sorted(ret.items())
setup(
# zipfile = None,
data_files = find_data_files('', '', ['bin/*', 'plugins/iconengines/*', 'qt.conf']),
windows = [{'script': 'main.py'}],
# cmdclass = {'py2exe': Py2exe},
options = {
'py2exe': {
'bundle_files': 1,
'includes': ['sip'],
'dll_excludes': ['MSVCP90.dll']#, 'qsvgicon4.dll']
}
}
)
py2exe가 다소 복잡하고 cx_freeze가 Linux에서 잘 작동 했으므로 또 다른 기회를 제공 할 것입니다. 분명히 코드를 살펴볼 것이고, 프로젝트가 SVGs *와 *를 바이너리로 컴파일 할 때 사용하기 때문에, 코드가 작동한다고 생각합니다! 감사. – Blender