Версия Python и совместимость с Tcl / Tk - PullRequest
2 голосов
/ 25 марта 2011

Я установил Tcl и Tk, и я сталкиваюсь с очень знакомой ошибкой "Нет модуля с именем _tkinter".

Моя команда Bash 'python' запускает Python версии 2.4.2, но Synaptic говорит, что у меня установлена ​​2.6.6.Я даже пытался установить 3.0, но это также не удалось.

Я сам настроил и собрал tar-архивы Tcl / Tk и попробовал использовать синаптические пакеты.

Обе команды «wish» и «tclsh» работают, поэтому я знаю, что модули установлены, но я не могу заставить Python распознать их.Более того, я не могу понять, какую версию Python мне следует использовать и как заставить мою команду Bash использовать эту версию.

Я не вижу никаких вариантов удаления 2.4.2, и если я удаляю 2.6.6, он удаляет то, что кажется большинством других моих пакетов (преувеличение, я знаю).

Я действительно не знаю, куда идти отсюда, поэтому любые рекомендации будут с благодарностью.

Обновление:

Мне пришлось переустановить пакет python-tk,и 2.6 может импортировать его.Теперь мне просто нужно выяснить, как удалить 2.4, чтобы потом не испортить что-либо.

Ответы [ 2 ]

1 голос
/ 10 апреля 2011

Просто обновление для тех, кто попадает на эту страницу, относительно Python 3+ (как у меня). Для запуска tkinter в Linux на основе Debian (Ubuntu) требуется python3, а также python3-tk (его нет в списке библиотек):

sudo apt-get install python3
sudo apt-get install python3-tk

Кроме того, сценарий должен иметь следующую строку:

#! /usr/bin/python3

По крайней мере, так я решил проблему.

1 голос
/ 25 марта 2011

Вот несколько команд, которые могут помочь вам диагностировать вашу проблему.

Сначала попробуйте выполнить команду python с добавленным номером версии. поскольку Synaptic говорит, что у вас установлен 2.6.6, и вы сможете запустить python2.6 получить эту версию:

(type 'python' and hit TAB to see possible completions)

% python<tab>
python
python2.6
python3.1

Если вы все еще не можете запустить TK, найдите, где находится модуль _tkinter.so ваша система. Это может быть где-то интерпретатор 2.6.6 не может найти его. Вот местоположение, установленное пакетом python-tk в Ubuntu Lucid:

% find /usr -name '_tkinter*'
/usr/lib/python2.6/lib-dynload/_tkinter.so
...