关于TCL套餐的问题
我对 TCL 中的包有疑问
我有一个 test1.tcl 文件:
package provide hello 0.1.0
set globalVariable 20
test2.tcl 中需要此文件
package require hello 0.1.0
puts $globalVariable
,pkgIndex.tcl 是:
package ifneeded hello 0.1.0 [list source [file join $dir test1.tcl]]
当我执行 test2.tcl 时,它告诉我,包 hello 0.1.0 是未找到。
我尝试执行 pkgIndex.tcl,它告诉我无法读取变量 dir,所有这三个文件都位于同一文件夹下。我该如何解决它?有人可以帮忙吗?
I have a question about package in TCL
I have a test1.tcl file:
package provide hello 0.1.0
set globalVariable 20
this file in required in test2.tcl
package require hello 0.1.0
puts $globalVariable
and the pkgIndex.tcl is:
package ifneeded hello 0.1.0 [list source [file join $dir test1.tcl]]
when I execute the test2.tcl, it tells me, the package hello 0.1.0 is not found.
I try to execute the pkgIndex.tcl, it tells me can not read variable dir, all of these three files are under the same folder. how could I fix it? can anyone help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要阅读 pkg_mkIndex 的文档,其中解释了解释器如何查找要加载的包。简短的版本是:
You need to read the documentation for
pkg_mkIndex
which explains how the interpreter goes about looking for packages to load. The short version is:除了 Glenn 和 Jackson 的回答:Tcl 解释器还会查看 TCLLIBPATH 环境变量,因此将其设置为指向包含包的目录。更多信息请参见:http://wiki.tcl.tk/1787。我通常将这些行放入 bash 启动文件中:
In addition to Glenn and Jackson answer: The Tcl interpreter also looks at the TCLLIBPATH environment variable, so set it up to point to your directory containing the package. More information here: http://wiki.tcl.tk/1787. I usually put these lines in my bash start-up file:
在“test2.tcl”中,在执行
package require
之前,添加以下内容:然后,Tcl 可以在当前目录中查找 pkgIndex 文件。
In 'test2.tcl', before executing
package require
, add this:Then, Tcl can look in your current directory for the pkgIndex file.