首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在tclsh中找不到iwidgets,但是已经安装了:为什么?

在tclsh中找不到iwidgets,但是已经安装了:为什么?
EN

Stack Overflow用户
提问于 2022-04-14 08:28:41
回答 1查看 109关注 0票数 0

我发现使用tclsh使用"package“语句无法找到itk和iwidget包。这是在Centos 7.9上。但是,从下面的yum/dnf输出中可以看到,这两个包都已安装。造成这一问题的原因是什么,更重要的是什么是解决办法。

代码语言:javascript
复制
% tclsh
% package require Tk
 8.6.12
% package require Itcl
 4.2.2
% package require Itk
 can't find package Itk
% package require Iwidgets
 can't find package Iwidgets
% exit


(pymatgen) :/data>dnf list installed "itk-devel*"
Installed Packages
 itk-devel.x86_64  3.4- 9.el7         @System


(pymatgen) :/data>dnf list installed "iwidgets*"
Installed Packages
 iwidgets.noarch 4.0.2-9.el7          @System

编辑"rpm -ql iwidgets grep pkgIndex“的结果是:/usr/pkgIndex/tcl8.5/iwidgets4.0.2/pkgIndex.tcl

虽然:~>tclsh %包需要Iwidgets联接[lsort -dictionary包名]\n无法找到包Iwidget% exit

这是$auto_path结果和包列表。

代码语言:javascript
复制
(base) :~>rpm -ql iwidgets | grep pkgIndex
/usr/share/tcl8.5/iwidgets4.0.2/pkgIndex.tcl
(base) :~>tclsh
% puts $auto_path
/data/miniconda/lib/tcl8.6 /data/miniconda/lib
% exit

% package require Iwidgets
join [lsort -dictionary [package names]] \ncan't find package Iwidgets
% 
http
Itcl
itcl
msgcat
opt
platform
sqlite3
Tcl
tcl::tommath
TclOO
tclreadline
tcltest
tdbc
tdbc::mysql
tdbc::odbc
tdbc::postgres
Thread
Tk
Ttrace
zlib
% 
EN

回答 1

Stack Overflow用户

发布于 2022-04-14 15:08:00

我不容易访问CentOS系统,但您可以使用以下命令进行调查:

查找iwidget包的pkgIndex.tcl文件:rpm -ql iwidgets | grep pkgIndex

然后在tclsh中,检查auto_path变量:puts $auto_path中是否列出了父目录。

您还可以检查可用的包。也许Iwidgets只能作为"iwidgets“使用。同样,在tclsh运行中:

代码语言:javascript
复制
package require Iwidgets
join [lsort -dictionary [package names]] \n

注意:您必须先做一个package require,这样Tcl才能扫描磁盘上的可用包。

更新:在您提供了$auto_path的值之后,您似乎没有使用标准的CentOS tclsh,但是可能使用了miniconda附带的tclsh。您可以向which tclsh查询。

我怀疑如果您运行/usr/bin/tclsh,可以找到包。除非miniconda包替换了/usr/bin/tclsh,否则这将是错误的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71868661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档