Tclsh 中的未知包 shell
Unknown package in Tclsh shell
当我 运行 我的 Tcl 脚本时,它在执行时说“can't find package sqlite3
”。
那我该怎么办?
编辑: 看来我的设备中没有安装 sqlite3 包。
听起来 sqlite3 包不在 Tcl 解释器可以找到它的位置。该软件包甚至安装在该机器上吗?如果不是,那就是你的问题。
否则,如果库存在,那么问题是 Tcl 解释器没有被告知去哪里查找。出现这种情况的原因有几个,但您通常可以通过在 运行ning Tcl 之前设置 TCLLIBPATH
环境变量来解决此问题,而无需编辑脚本。比如我的系统(macOS,但原理是跨平台的),sqlite安装在/Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib/sqlite33.8.10.2/
(具体来说,那里有一个pkgIndex.tcl
和libsqlite3.8.10.2.dylib
;后面的名字是虽然是特定于平台的细节)所以我会 运行 tclsh with:
export TCLLIBPATH=/Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib
tclsh myScript.tcl
我不希望你的路径是一样的!这里的关键是你可以找到东西的安装位置并设置TCLLIBPATH
使一切正常。
您还可以输入:
lappend ::auto_path /Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib
在您的脚本中 在第一个 package require
之前 ,但这会将脚本绑定到特定的系统安装布局,因此我们不建议将其用于除本地黑客。
当我 运行 我的 Tcl 脚本时,它在执行时说“can't find package sqlite3
”。
那我该怎么办?
编辑: 看来我的设备中没有安装 sqlite3 包。
听起来 sqlite3 包不在 Tcl 解释器可以找到它的位置。该软件包甚至安装在该机器上吗?如果不是,那就是你的问题。
否则,如果库存在,那么问题是 Tcl 解释器没有被告知去哪里查找。出现这种情况的原因有几个,但您通常可以通过在 运行ning Tcl 之前设置 TCLLIBPATH
环境变量来解决此问题,而无需编辑脚本。比如我的系统(macOS,但原理是跨平台的),sqlite安装在/Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib/sqlite33.8.10.2/
(具体来说,那里有一个pkgIndex.tcl
和libsqlite3.8.10.2.dylib
;后面的名字是虽然是特定于平台的细节)所以我会 运行 tclsh with:
export TCLLIBPATH=/Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib
tclsh myScript.tcl
我不希望你的路径是一样的!这里的关键是你可以找到东西的安装位置并设置TCLLIBPATH
使一切正常。
您还可以输入:
lappend ::auto_path /Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib
在您的脚本中 在第一个 package require
之前 ,但这会将脚本绑定到特定的系统安装布局,因此我们不建议将其用于除本地黑客。