即使文件在 auto_path 目录中,tcl 也找不到包

tcl can't find package even though file is in auto_path directory

关于 windows 7,tcl 8.6.4。

我的repo.tcl和region.tcl文件都在c:\sites\vive

repo 是一个包:

package provide repo 1.0

namespace eval ::repo {}
namespace eval ::repo::create{}

proc ::repo::create {} {...} ...

region.tcl 想要访问 repo.tcl 中的过程,所以它看起来像这样:

#source ./repo.tcl <---------old method, want to replace with package require
lappend auto_path [pwd] ;#<--puts c:\sites\vive in the autopath so package can find it.

package require repo 1.0 ;#<--tried this with out version number as well. same result.

::repo::create

...

我总是遇到这个错误:

can't find package repo 1.0

这两个网站都建议我使用 lappend auto_path https://unix.stackexchange.com/questions/44992/package-require-xxxx-tcl Can't find package BLT

我做错了什么?谢谢!

您必须使用 pkg_mkIndex

生成 pkgIndex.tcl 文件
% pkg_mkIndex -verbose [pwd] repo.tcl
successful sourcing of repo.tcl
packages provided were {repo 1.0}
processed repo.tcl
% lappend auto_path [pwd]
C:/Dinesh/Backup/cmder/vendor/msysgit/lib/tcl8.5 C:/Dinesh/Backup/cmder/vendor/msysgit/lib C:/Users/dsivaji/Desktop/delete
%
%
%
% package require repo
1.0

查看手册页 pkg_mkIndex 了解更多信息。