문제를 컴파일하 python3&pyqt4 와 cx_freeze
-
13-12-2019 - |
문제
나는 컴파일을 시도하고 간단한 스크립트를 썼을 사용하여 Python3 및 PyQt4 를 사용하여 cx_Freeze 지만,나는 세 가지 문제는 그냥 알아낼 수 없습니다.
할 수 없습니다 아이콘이 나타납니다.내가 사용하여 컴파일된 리소스 파일에 대한 그리,즉을 가져오.py 자원을 포함하는,그리고 나를 따르려고 애를 썼는 조언 기, 사 imageformats 폴더 내에 프로젝트 폴더 하지만 아무것도 작동하는 것 같다.
나는 사용하지 않 severl python 모듈을 포함한 tcl 및 운영체제의 인쇄 하위시스템과 통 그래서 나는 추가
excludes
옵션입니다.그러나,그들은 여전히 보이 추가 할 수 있습니다.하려고 하면 컴파일
base='Win32GUI'
실행하고 만들어진 exe 예외가 발생합니다:'NoneType' has no attribute 'encoding'
이건 뭔가 잘못된 내 설치 스크립트 때문에 cx_Freeze 문서는 매우 자세한 정보,그래서 사람이라고 할 수 있습니다 문제입니다.여기에 설치 스크립트입니다.나이트 스크립트 내가 컴파일하기 때문에 그것의 매우 긴하지만,경우 해당 필요 내가 만들려고 간결한 버전을 테스트합니다.
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.py',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
data_files=['imageformats'],
executables=[exe],
options={'build-exe': options}
)
해결책
(참고에 대해 확실 1.)
2:에서 옵션을={'빌드-exe'...,나는 그것을 생각해야 build_exe(밑줄로 대신 dash).
3:당신은에 액세스하려고 뭔가 sys.stdout.encoding
어디서나? sys.stdout
아무도 없을 것입니다 사용할 경우 Win32GUI 기초입니다.도 print()
전화 시킬 수도 있습니다.
다른 팁
해결합니다.또한 토마스'포인터,나는 데 필요한'imageformats'로서'포함한 파일에서 옵션을 하지'data_files'.최종 스크립트는 다음과 같습니다:
from cx_Freeze import setup, Executable
exe = Executable(
script='cconvert.pyw',
base='Win32GUI'
)
options = dict(
excludes=['curses', 'email', 'tcl', 'ttk', 'tkinter'],
include_files=['imageformats']
)
setup(
name="Coord Convertor",
version="0.1",
description="A Coordinate converter from DMS to DD",
requires=['pyqt4 (>=4.8)', 'dtlibs (>=0.4.1)'],
executables=[exe],
options={'build_exe': options}
)