You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Traceback (most recent call last):
File "C:\Programs\Notepad++\plugins\Config\PythonScript\scripts\Tests\bug.py", line 8, in <module>
tkinter.Tk()
File "C:\Programs\Notepad++\plugins\PythonScript\lib\tkinter\__init__.py", line 2346, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: Can't find a usable init.tcl in the following directories:
C:/Programs/Notepad++/plugins/PythonScript/lib/tcl8.6 C:/Programs/lib/tcl8.6 C:/lib/tcl8.6 C:/Programs/library C:/library C:/tcl8.6.15/library C:/tcl8.6.15/library
C:/Programs/Notepad++/plugins/PythonScript/lib/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.15, need exactly 8.6.13
version conflict for package "Tcl": have 8.6.15, need exactly 8.6.13
while executing
"package require -exact Tcl 8.6.13"
(file "C:/Programs/Notepad++/plugins/PythonScript/lib/tcl8.6/init.tcl" line 19)
invoked from within
"source C:/Programs/Notepad++/plugins/PythonScript/lib/tcl8.6/init.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"
This probably means that Tcl wasn't installed properly.
Appears that PS v3.0.19.0 is the last v3 version which matches the Tk/Tcl requirement of exactly 8.6.13 .
Downloaded tk8.6.15 source from SourceForge and compared tk.tcl with v3.0.21.0
Details
@@ -11,7 +11,7 @@
# this file, and for a DISCLAIMER OF ALL WARRANTIES.
# Verify that we have Tk binary and script components from the same release
-package require -exact Tk 8.6.13+package require -exact Tk 8.6.15
# Create a ::tk namespace
namespace eval ::tk {
@@ -178,16 +178,21 @@
catch {focus $oldFocus}
grab release $grab
- if {$destroy eq "withdraw"} {- wm withdraw $grab- } else {- destroy $grab+ if {[winfo exists $grab]} {+ if {$destroy eq "withdraw"} {+ wm withdraw $grab+ } else {+ destroy $grab+ }
}
if {[winfo exists $oldGrab] && [winfo ismapped $oldGrab]} {
+ # The "grab" command will fail if another application+ # already holds the grab on a window with the same name.+ # So catch it. See [7447ed20ec] for an example.
if {$oldStatus eq "global"} {
- grab -global $oldGrab+ catch {grab -global $oldGrab}
} else {
- grab $oldGrab+ catch {grab $oldGrab}
}
}
}
PS v3.0.21.0 x64
Details
bug.py:output:
PythonScript/PythonLib/tcl/tcl8.6/init.tcl
Line 19 in fce7c26
PythonScript/PythonLib/tcl/tk8.6/tk.tcl
Line 14 in fce7c26
Changing both require version strings to
8.6.15avoids error.Inside _tkinter binary is a string:
Same string in PS v3.0.20.0 _tkinter binary.
PS v3.0.19.0 _tkinter binary has a different string:
Appears that PS v3.0.19.0 is the last v3 version which matches the Tk/Tcl requirement of exactly
8.6.13.Downloaded tk8.6.15 source from SourceForge and compared tk.tcl with v3.0.21.0
Details