неопределенный символ: Tk_Init

#python-2.7 #tkinter

#python-2.7 #tkinter

Вопрос:

python2.7 когда я импортирую Tkinter, он не запрашивает модуль с именем _tkinter, у меня нет ограничений администратора, поэтому я устанавливаю tcl и tk, затем перекомпилирую python с параметром —with-tcltk-includes и —with-tcltk-libs, но при запуске ‘make’ ошибка «»» *** ПРЕДУПРЕЖДЕНИЕ: переименование «_tkinter», поскольку его импорт не удался: build/lib.linux-x86_64-2.7/ _tkinter.итак: произошел неопределенный символ: Tk_Init»»», я действительно не знаю, как с этим бороться, кто-нибудь может мне помочь? Спасибо!

Комментарии:

1. На Python 2.7 должен быть установлен Tkinter. Но, например, в новейшей Ubuntu вы должны установить его вручную, используя Ubuntu apt install python-tk

Ответ №1:

Оба флага -L и -l необходимы в параметре —with-tcltk-libs. Я получил ту же ошибку, что и вы, когда я использовал только флаг -L.

В моем случае это сработало:

 ./configure --prefix=$PREFIX --with-tcltk-includes="-I$PREFIX/include" --with-tcltk-libs="-L$PREFIX/lib/ -ltcl8.6 -ltk8.6"
  

Возможно, вам потребуется изменить номер версии в названии библиотек TCL и TK (и, конечно, определить ПРЕФИКС $).

Ответ №2:

У меня была точно такая же проблема с Python-3.4.3. Я последовал решению Брайса и прошел половину пути. Мне не только потребовались флаги -l после флага -L, как он предложил, но я обнаружил, что мой LD_LIBRARY_PATH был неадекватен при выполнении ‘make altinstall’. Обязательно включите в LD_LIBRARY_PATH тот же каталог, который используется в вашей записи с флагом -L.