在TCL中找不到包fileutil(如何为第三方TCL解释器安装它)

时间:2015-09-04 00:26:25

标签: tcl

我安装了Win 7机器和TCL downloads.activestate.com/ActiveTCL/releases/8.6.4.1/ActiveTcl8.6.4.1.299124-win32-x86_64-threaded.exe
我成功使用TCL包 fileutil ,如下:

proc foo{} {
 # some code 
  package require fileutil
  # able to use ::fileutil::updateInPlace in code 
}

foo

这是通过

中的脚本完成的
  

C:/SVN/code/changeFile.tcl

现在,我使用相同的代码作为更大脚本的一部分

proc foo{} {
     # some code 
      package require fileutil
     # some code using the package

    }

# more code
cd "C:/SVN/code"
foo
#more code
cd "C:/Program Files (x86)/Target Compiler Technologies/adsp2-12R2/designs/adsp2/ISS"

这是名为 audio_sim.tcl 的脚本的一部分,并由shell上的以下命令调用

  

cd“C:/ Program Files(x86)/ Target Compiler   Technologies / adsp2-12R2 / designs / adsp2 / ISS“adsp2_ia.exe -T -t   “C:/SVN/code/audio_sim.tcl”

现在出现错误:

  

无法找到包fileutil

为什么它会像我在第一种情况下那样抱怨?

1 个答案:

答案 0 :(得分:2)

正如slebetman所写,adsp2_ia.exe可能无法找到ActiveTcl库文件,但您可以自己导入该包。在我的8.6.1安装中,文件位于C:\Tcl\lib\teapot\package\tcl\teapot\tcl8\8.2\fileutil-1.14.8.tm。您的位置或版本号可能不同,但请注意您正在寻找.tm文件。它不会出现在名为fileutil的任何目录中,而是用于相关的包。

(另一个slebetman指针:)通过以路径为参数调用::tcl::tm::path add,可以使模块可见。

如果没有,请使用source导入代码。在任何程序之外的全局范围内进行调用。

然后你应该可以致电package require fileutil

文档:packagesourcetm