您的位置:首页 > 大数据 > 人工智能

TclTk failed after upgrade to 9.10 in XVnc Session

2013-01-11 10:56 190 查看
5 Cups of Ubuntu



 
Join Date: Jan 2007
Beans: 33

TclTk failed after upgrade to 9.10 in XVnc Session
Hello,

I am running a machine under ubuntu since 6.10.

This computer is headless & I am using XVnc in order to have multiple resumeable sessions available for different users.

I've done the upgrade from 9.04 to 9.10 yesterday & I am experiencing a big trouble.

One of my application which is running in TclTk is not longer working.

I get the following message :

Code:
Tk initialization failed: Can't find a usable tk.tcl in the following directories:
/opt/modelsim/6.5b/linux_x86_64/../tcl/tk8.4 /opt/modelsim/6.5b/linux_x86_64/../tcl/tcl8.4/tk8.4 /opt/modelsim/current/bin/../lib/tk8.4 /opt/modelsim/current/bin/../linux_x86_64/tk8.4 /opt/modelsim/current/bin/lib/tk8.4 /opt/modelsim/current/bin/../library /opt/modelsim/current/bin/library /opt/modelsim/current/bin/tk8.4.14/library /opt/modelsim/current/tk8.4.14/library

/opt/modelsim/6.5b/linux_x86_64/../tcl/tk8.4/tk.tcl: can't access "::tk::Priv.::ffff:127.0.0.1:7": parent namespace doesn't exist
can't access "::tk::Priv.::ffff:127.0.0.1:7": parent namespace doesn't exist
while executing
"upvar #0 ::tk::Priv.::ffff:127.0.0.1:7 ::tk::Priv"
("uplevel" body line 1)
invoked from within
"uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv"
(procedure "tk::ScreenChanged" line 9)
invoked from within
"tk::ScreenChanged [winfo screen .]"
(file "/opt/modelsim/6.5b/linux_x86_64/../tcl/tk8.4/tk.tcl" line 284)
invoked from within
"source /opt/modelsim/6.5b/linux_x86_64/../tcl/tk8.4/tk.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0[list source $file]"

This probably means that tk wasn't installed properly.


The application is not the problem because If I try to run a small Tk script, I get the same kind of error.

I am still able to run the application under the session opened from the computer (not XVnc session).

If anyone has a clue to help me, I am open


Thanks in advance !

[SOLVED !]

Some tools use a broken tcl/tk opensource library (such as mentor modelsim).

A fix has been suggested by Tristan Schmelcher to the maintainers (http://sourceforge.net/mailarchive/m...mail.gmail.com)

-> Open the tk.tcl file and apply the following patch :

Code:
--- tk.tcl.8.5	2009-12-06 19:14:10.000000000 +0100
+++ tk.tcl.new	2009-12-06 19:19:04.000000000 +0100
@@ -248,7 +248,14 @@
set disp $screen
}

-    uplevel #0 upvar #0 ::tk::Priv.$disp ::tk::Priv
+    # disp can legally contain "::", so we have to create the portion up to
+    # the last :: as a namespace.
+    set var_name ::tk::Priv.${disp}
+    set x [string last :: $var_name]
+    set namespace_name [string range $var_name 0 [expr {$x - 1}]]
+    namespace eval $namespace_name {}
+
+    uplevel #0 upvar #0 $var_name ::tk::Priv
variable ::tk::Priv
global tcl_platform


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐