Tkinter 위젯으로 일부 사진 보정을 표시하기 위해 하나의 slideshow.py 파일을 만들었습니다.이 파일은 내 창 & 리눅스에서 완벽하게 실행됩니다. 가 내가는 Win32 실행 파일로 컴파일 할 py2exe에를 사용하여, 그것은 설치 파이썬과 TCL없이 윈도우에서 실행했다, setup.py는 간단하다py2exe로 TCL_LIBRARY와 TK_LIBRARY를 수정하는 방법
from distutils.core import setup
import py2exe
setup(windows=["slideshow.py"])
그럼, 그것은 생성 "파이썬 setup.py py2exe에"실행 c : \ Users \ d2xia \ ccm_wa \ utils \ tfps \에있는 "dist"폴더와 그 아래에 "tcl", "library.zip", "slideshow.exe"등이 있습니다.
나는 slideshow.exe 그 오류를 실행하면 :
Traceback (most recent call last):
File "slideshow.py", line 45, in <module>
File "Tkinter.pyc", line 1685, in __init__
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
C:/Users/d2xia/ccm_wa/utils/tfps/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/tfps/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/lib/tcl8.5 C:/Users/d2xia/ccm_wa/utils/tfps/library C:/Users/d2xia/ccm_wa/utils/library C:/Users/d2xia/ccm_wa/utils/tcl8.5.11/library C:/Users/d2xia/ccm_wa/tcl8.5.11/library
tcl8.5 및 tk8.5 실제로 "TCL"폴더 아래에있는, 그러나 py2exe에 의해 생성 된 EXE 여전히 아래에 보이는 것 같다 "LIB" 또는 "라이브러리", 올바른 TCL_LIBRARY 및 TK_LIBRARY 설정하지 않는 것 같습니다.
"tcl"의 이름을 "lib"로 변경하더라도 여전히 동일한 오류가 발생합니다.
set TCL_LIBRARY=c:\Users\d2xia\ccm_wa\utils\tfps\dist\tcl\tcl8.5\
set TK_LIBRARY=c:\Users\d2xia\ccm_wa\utils\tfps\dist\tcl\tk8.5\
다음 slideshow.exe 생성 새로운 오류 :
c:/Users/d2xia/ccm_wa/utils/tfps/dist/tcl/tcl8.5/init.tcl: version conflict for package "Tcl": have 8.5.11, need exactly 8.5.2
version conflict for package "Tcl": have 8.5.11, need exactly 8.5.2
while executing
"package require -exact Tcl 8.5.2"
(file "c:/Users/d2xia/ccm_wa/utils/tfps/dist/tcl/tcl8.5/init.tcl" line 20)
invoked from within
"source c:/Users/d2xia/ccm_wa/utils/tfps/dist/tcl/tcl8.5/init.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"
나는 C에서 티클 8.5.11이 : \ APPS \ 자식 \ lib 디렉토리 \ tcl8.5 및 C 티클 8.5.2 : \ Python27 \ tcl \ tcl8.5 python으로 실행하면 python 설치 경로에서 tcl을 찾지 만 py2exe는 git 설치 경로에서 다른 복사본을 찾습니다.
그렇다면 질문은 이됩니다. 1. dist를 만들 때 올바른 tcl8.5 복사본을 py2exe에 "할당"하는 방법은 무엇입니까? 2. 생성 된 실행 파일이 dist의 tcl 경로를 인식하도록하는 방법은 무엇입니까? "lib"또는 "library"대신 "tcl"
훌륭한 솔루션이지만, 왜 py2exe가이 문제를 일으키는 지에 대한 간단한 설명이 있습니까? 이거 버그 야? 이것이보고 되었습니까? – ecoe