настроить tkinter для python3.4.2

настроить tkinter для python3.4.2

Недавно я столкнулся с проблемой при установке новейшего python3.X.
Установил его с помощью Python-3.4.2.tar.xzпакета из python.org После установки попытался импортировать tkinterмодуль, но не получилось.

Результат import tkinterбыл следующим:

>>> импорт tkinter
Трассировка (последний вызов последний):
  Файл "", строка 1, в
  Файл "/usr/local/lib/python3.4/tkinter/__init__.py", строка 38, в
    import _tkinter # Если это не удалось, ваш Python, возможно, не настроен для Tk
ImportError: Отсутствует модуль с именем «_tkinter»

Я также попробовал следующие решения:

но ни один из них не помог.
При попытке этих решений, если заметил, что ошибка говорит:

import _tkinter # Если это не удалось, ваш Python, возможно, не настроен для Tk

затем я погуглил об этом и нашелэтот.
ЧтениеПроверка поддержки Tkinterраздел, Step 1не удалось и застрял в этой строке

Если вы устанавливаете Tcl/Tk в расположениях по умолчанию, простой повторный запуск «make» должен собрать расширение _tkinter.

Что касается вышеприведенной строки, мой вопрос:
где найти make-файл для запуска makeкоманды?

И как мне настроить его tkinterтак, чтобы Python3.4.2 его принял?


РЕДАКТИРОВАТЬ:

Я забыл упомянуть, но import tkinterэто работает для стандартной установки (Python-3.4.0) Python в Ubuntu 14.04.1

решение1

Для сборки python3.4.2 из исходного кода с _tkinterмодулем вам необходимо установить следующую зависимость сборки:

sudo apt-get install tk8.6-dev

Затем вам останется только запустить его makeеще раз, чтобы добавить _tkinterподдержку, поскольку setup.pyфайл автоматически обнаружит заголовки tk/tcl и создаст модуль:

~/Downloads/Python-3.4.2$ make
running build
running build_ext
building '_tkinter' extension
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o
gcc -pthread -fPIC -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Werror=declaration-after-statement -DWITH_APPINIT=1 -I/usr/include/tcl8.6 -I/usr/X11/include -I./Include -I. -IInclude -I/usr/include/x86_64-linux-gnu -I/usr/local/include -I/home/sylvain/Downloads/Python-3.4.2/Include -I/home/sylvain/Downloads/Python-3.4.2 -c /home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.c -o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o
gcc -pthread -shared build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/_tkinter.o build/temp.linux-x86_64-3.4/home/sylvain/Downloads/Python-3.4.2/Modules/tkappinit.o -L/usr/X11/lib -L/usr/lib/x86_64-linux-gnu -L/usr/local/lib -ltk8.6 -ltcl8.6 -lX11 -o build/lib.linux-x86_64-3.4/_tkinter.cpython-34m.so

Python build finished successfully!
The necessary bits to build these optional modules were not found:
_bz2                  _dbm                  _gdbm              
_lzma                 _sqlite3                                 
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
[...]

Теперь вы можете импортировать tkinter в python3.4.2:

~/Downloads/Python-3.4.2$ ./python 
Python 3.4.2 (default, Oct 30 2014, 11:34:17) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

Оригинальный ответ:

Если вам действительно не нужен python3.4.2, я бы просто использовал версию python3 по умолчанию в 14.04 (3.4.0)

Затем вам останется только установить следующие пакеты:

sudo apt-get install python3-tk tk

И запустите интерпретатор Python следующим образом:

/usr/bin/python3

В противном случае вы всегда получите версию, которую установили в /usr/local(3.4.2).

Импорт tk в python3 теперь должен работать:

$ python3
Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tkinter
>>> 

решение2

Если вам нужен tkinter только для matplotlib, вы также можете использовать другой бэкэнд, например Egg: import matplotlib as mpl mpl.use('Agg') import matplotlib.pyplot as plt

Смотреть больше подробностейздесь

решение3

sudo apt-get install python3-tk tk  

pyenv install 3.5.0  

вот и все

решение4

Просто чтобы вы знали, я использую Ubuntu 16.04. Добавлю к первому ответу, сделайте эти вещи из файла python (после извлечения):

./configure #(there will be a configure file)
make
make test
sudo make install

Я сделал это в первый раз, но мне все равно показывали следующие ошибки:

IDLE can't import Tkinter.  Your Python may not be configured for Tk.

при запуске python3 -m idlelib.idleиз cmd.

Так я и сделал:

sudo apt-get install tk-dev

или вы можете сделать

sudo apt-get install tk8.6-dev

затем снова

./configure
make
make test
sudo make install

Это решило проблему, так как при следующем запуске python3 -m idlelib.idleоткрылся IDLE.

Связанный контент