пакет требует Tk - не работает в tclsh

Я пытаюсь загрузить пакет Tk в tclsh, но не могу его загрузить. Погуглив, я решил, что может помочь изменение auto_path. Но к сожалению мне это не помогло.

На моей машине с Linux я могу запустить tclsh и wish, и обе версии v8.3; Вот что я пробовал на tclsh и хочу:

% tclsh
% package require Tk
can't find package Tk
% puts $auto_path
/usr/share/tcl8.3 /usr/share /usr/lib
% 

% wish
% puts $auto_path
/usr/share/tcl8.3 /usr/share /usr/lib /usr/share/tk8.3
% 

% tclsh
% lappend auto_path /usr/share/tk8.3
/usr/share/tcl8.3 /usr/share /usr/lib /usr/share/tk8.3
% package require Tk
can't find package Tk
% 

Может ли кто-нибудь помочь мне в решении этой проблемы?

РЕДАКТИРОВАТЬ: я попробовал следующее, чтобы заставить его работать. Но должен быть лучший способ

% tclsh
% load /usr/lib/libtk8.3.so
% package require Tk
8.3

person Anand    schedule 08.03.2011    source источник
comment
Привет, я не знаю ответа на вашу проблему, но я подумал, что должен указать, что вы используете ОЧЕНЬ старую версию TCL. Вероятно, вы решите свои проблемы путем обновления.   -  person TrojanName    schedule 09.03.2011
comment
Спасибо, Брайан. Я тоже попробую.   -  person Anand    schedule 09.03.2011


Ответы (1)


Загрузка Tk в виде стандартного пакета не поддерживается в версии 8.3 (которая в любом случае сейчас практически не поддерживается; последняя версия 8.3 была выпущена около 10 лет назад). Обновление до 8.5 должно заставить все это работать; он также может работать в версии 8.4 (но она уже устарела).

(Есть целая куча причин, по которым это не работало в 8.3; в основном это требовало добавления дополнительных функций API — сделано в 8.4 — и требовало, чтобы сборка была выполнена правильно. Это было сделано и в 8.4. .)

person Donal Fellows    schedule 09.03.2011