关于TCL套餐的问题

发布于 2024-12-01 12:16:10 字数 474 浏览 0 评论 0原文

我对 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

ま柒月 2024-12-08 12:16:10

您需要阅读 pkg_mkIndex 的文档,其中解释了解释器如何查找要加载的包。简短的版本是:

将软件包安装为给定目录之一的子目录
通过 tcl_pkgPath 变量。如果您在其他地方安装该软件包,
那么你必须确保包含该包的目录位于
auto_path 全局变量或其中之一的直接子目录
auto_path 中的目录。

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:

Install the package as a subdirectory of one of the directories given
by the tcl_pkgPath variable. If you install the package anywhere else,
then you must ensure that the directory containing the package is in
the auto_path global variable or an immediate subdirectory of one of
the directories in auto_path.

青衫儰鉨ミ守葔 2024-12-08 12:16:10

除了 Glenn 和 Jackson 的回答:Tcl 解释器还会查看 TCLLIBPATH 环境变量,因此将其设置为指向包含包的目录。更多信息请参见:http://wiki.tcl.tk/1787。我通常将这些行放入 bash 启动文件中:

TCLLIBPATH="$TCLLIBPATH ~/path/to/my/package"
export TCLLIBPATH

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:

TCLLIBPATH="$TCLLIBPATH ~/path/to/my/package"
export TCLLIBPATH
少跟Wǒ拽 2024-12-08 12:16:10

在“test2.tcl”中,在执行package require之前,添加以下内容:

lappend auto_path [file dirname [file normalize [info script]]]

然后,Tcl 可以在当前目录中查找 pkgIndex 文件。

In 'test2.tcl', before executing package require, add this:

lappend auto_path [file dirname [file normalize [info script]]]

Then, Tcl can look in your current directory for the pkgIndex file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文