如何在TCL中卸载包?
我首先加载了一个包:如何在TCL中卸载包?,tcl,tk,Tcl,Tk,我首先加载了一个包: package require Tktable 然后我想卸下这个包裹。我搜索了一些信息,并使用“packageifneeded”获取库路径。我尝试了以下方法: unload $path Tktable 但我收到错误消息“无法在受信任的解释器下卸载”。如何卸载包裹 大多数软件包根本不支持卸载。(具体地说,Tktable没有定义;它没有在其公共C API中定义Tktable_Unload函数或Tktable_SafeUnload函数。)卸载很少,因为它要求C代码的作者特别
package require Tktable
然后我想卸下这个包裹。我搜索了一些信息,并使用“packageifneeded”获取库路径。我尝试了以下方法:
unload $path Tktable
但我收到错误消息“无法在受信任的解释器下卸载”。如何卸载包裹
Tktable_Unload
函数或Tktable_SafeUnload
函数。)卸载很少,因为它要求C代码的作者特别小心,以确保这是可能的,大多数时候,程序员还有其他更高优先级的问题load
也不受支持,但通常由父级主解释器以受限的方式进行分析,例如通过package require
在幕后做一些聪明的事情。)Tktable_Unload
函数或Tktable_SafeUnload
函数。)卸载很少,因为它要求C代码的作者特别小心,以确保这是可能的,大多数时候,程序员还有其他更高优先级的问题load
也不受支持,但通常由父级主解释器以受限的方式进行分析,例如通过package require
在幕后做一些聪明的事情。)你为什么要卸下它?你有没有试着忘记
package
?在我加载这个包之后,我平台上的一些命令被这个包重写了。所以我想在一些特殊情况下卸载它。我尝试过包忘记,但它不起作用。除非采取特殊预防措施,否则被其他命令覆盖的命令不会返回,即使您删除了它们进入的包。您可以尝试将命令放在命名空间中以保留它们。将命令放在全局命名空间中的包很可能会这样做,即使您在命名空间评估中需要它。您可以控制的是您自己的命令的位置。如果您在自己的命名空间中创建它们,则任何包都不会覆盖它们。为了保留偶尔使用的命令,您也可以在需要软件包之前使用重命名。如果命令foo
在您需要时被软件包覆盖,那么请事先执行rename foo\u foo
,并使用\u foo
访问它。为什么需要卸载它?你有没有试着忘记package
?在我加载这个包之后,我平台上的一些命令被这个包重写了。所以我想在一些特殊情况下卸载它。我尝试过包忘记,但它不起作用。除非采取特殊预防措施,否则被其他命令覆盖的命令不会返回,即使您删除了它们进入的包。您可以尝试将命令放在命名空间中以保留它们。将命令放在全局命名空间中的包很可能会这样做,即使您在命名空间评估中需要它。您可以控制的是您自己的命令的位置。如果您在自己的命名空间中创建它们,则任何包都不会覆盖它们。为了保留偶尔使用的命令,您也可以在需要软件包之前使用重命名。如果命令foo
在您需要时被软件包覆盖,那么请事先执行rename foo\u foo
,并使用\u foo
访问它。