Доступ к библиотекам TCL

Я новичок в TCL и борюсь с доступом к другим модулям. Команда SOURCE помогла мне включить другой код, который я написал в программе TCL. Тем не менее, я думаю, что у меня есть проблемы с доступом к библиотекам кода.

Например, когда я ссылаюсь на математическую функцию, она не найдена. Я думаю, что мне нужно что-то сделать, чтобы найти библиотеку математики на моем компьютере в поиске программы, вызываемой через tchsh85.

invalid command name "::math::statistics::mv-ols"

Ни один из этих каталогов не существует на моем компьютере:

info library= C:/Tcl/lib/tcl8.5
auto_path= C:/Tcl/lib/tcl8.5 C:/Tcl/lib c:/tcl/lib/teapot/package/win32-x86_64/lib               c:/tcl/lib/teapot/package/tcl/lib
tcl library= C:/Tcl/lib/tcl8.5
auto_index= source C:/Tcl/lib/tcl8.5/word.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/parray.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/package.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/word.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/word.tcl
auto_index= source C:/Tcl/lib/tcl8.5/package.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/package.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/word.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/package.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/package.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/word.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/auto.tcl
auto_index= source C:/Tcl/lib/tcl8.5/history.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/tm.tcl
auto_index= source C:/Tcl/lib/tcl8.5/safe.tcl

2 ответа

Команда, которую вы хотите добиться успеха:

package require math::statistics

Вы не должны получать код другими способами (например, прямой source) потому что тогда вы привязываетесь к реализации пакета, а не к его спецификации. Этот пакет является частью коллекции Tcllib, которую вы должны установить где-нибудь на своем компьютере.

Если вы используете ActiveTcl, вы хотите сделать:

teacup update

Это установит много пакетов и настроит все необходимые вам пути.

Если вы используете свою собственную сборку, вам придется загрузить копию Tcllib для себя и следовать инструкциям по ее установке. Я не могу вспомнить, куда он устанавливается по умолчанию в Windows, но допустим, что C:\Tcl\lib\Tcllib (с фактическими пакетами в подкаталогах этого): в этом случае вы сделаете пакеты доступными для Tcl, выполнив:

lappend auto_path C:/Tcl/lib/Tcllib

Если вы делаете распространяемый исполняемый файл, есть дополнительные приемы. Задайте другой вопрос в этом случае.

:: математика:: статистика является частью TCLlib. Чтобы проверить, установлен ли он, введите

package require tcllib

и если он установлен, он сообщит вам номер версии. Если он не установлен, вы можете использовать Teacup для его установки.

Другие вопросы по тегам