程序包需要Tk-不在tclsh中工作

程序包需要Tk-不在tclsh中工作,tcl,tk,Tcl,Tk,我试图在tclsh中加载Tk包,但无法加载它。谷歌搜索之后,我想修改自动路径可能会有所帮助。但不幸的是,这对我没有帮助 在我的Linux机器中,我可以运行tclsh和wish,它们都是v8.3;以下是我在tclsh上尝试的内容和愿望: % tclsh % package require Tk can't find package Tk % puts $auto_path /usr/share/tcl8.3 /usr/share /usr/lib % % wish % puts $auto_p

我试图在tclsh中加载Tk包,但无法加载它。谷歌搜索之后,我想修改自动路径可能会有所帮助。但不幸的是,这对我没有帮助

在我的Linux机器中,我可以运行tclsh和wish,它们都是v8.3;以下是我在tclsh上尝试的内容和愿望:

% tclsh
% package require Tk
can't find package Tk
% puts $auto_path
/usr/share/tcl8.3 /usr/share /usr/lib
% 

% wish
% puts $auto_path
/usr/share/tcl8.3 /usr/share /usr/lib /usr/share/tk8.3
% 

% tclsh
% lappend auto_path /usr/share/tk8.3
/usr/share/tcl8.3 /usr/share /usr/lib /usr/share/tk8.3
% package require Tk
can't find package Tk
% 
有人能帮我解决这个问题吗

编辑: 我尝试了以下方法来让它工作。但一定有更好的办法

% tclsh
% load /usr/lib/libtk8.3.so
% package require Tk
8.3

8.3不支持将Tk作为标准包加载(现在基本上不支持;上一个8.3版本大约是10年前)。升级到8.5应该可以让一切正常;它可能在8.4中也能工作(但这也是lifed的结束)


(有一大堆原因导致它不能在8.3中工作;基本上,它需要添加额外的API函数——在8.4中完成——并且需要以正确的方式完成构建。这也是在8.4中完成的。)

嗨,我不知道你的问题的答案,但我想我应该指出,你运行的是一个非常旧的TCL版本。您可能会通过升级来解决问题。谢谢Brian。我也要试试。