1) Используя справочную функцию
Войдите в приглашение python и введите следующую команду:
>>>help("modules")
В этом списке будут указаны все модули, установленные в системе. Вам не нужно устанавливать какие-либо дополнительные пакеты, чтобы их перечислить, но вам нужно вручную найти или отфильтровать требуемый модуль из списка.
2) Использовать зависание с пипеткой
sudo apt-get install python-pip
pip freeze
Несмотря на то, что вам необходимо установить дополнительные пакеты для использования этого метода, этот метод позволяет легко искать или фильтровать результат с помощью команды grep
. например pip freeze | grep feed
.
Вы можете использовать любой удобный для вас метод.
Согласно http://wiki.python.org/moin/TkInter :
Если сбой «Нет модуля с именем _tkinter», ваша конфигурация Python необходимо изменить, чтобы включить этот модуль (который является модулем расширения, реализованным на C). Не редактируйте модули / настройки (устаревшие). Возможно, вам придется установить Tcl и Tk (при использовании RPM, также установить RPM -devel) и / или отредактировать скрипт setup.py, чтобы указать на нужные места, где установлен Tcl / Tk. Если вы устанавливаете Tcl / Tk в местоположения по умолчанию, просто перезапуск «make» должен построить расширение _tkinter.
blockquote>
Для всех, кто использует подсистему Windows и Windows для Linux, убедитесь, что при запуске команды python из командной строки это не случайно запускает установку python из WSL! Это дало мне довольно большую головную боль только сейчас. Быстрая проверка, которую вы можете сделать для этого, - это просто which <python command you're using>
. Если это печатает что-то вроде /usr/bin/python2
, даже если вы находитесь в PowerShell, это, вероятно, то, что происходит.
Я столкнулся с этой проблемой на python 2.7.9. Чтобы исправить это, я установил tk и tcl, а затем восстановил код python и переустановил, а во время настройки я установил путь для tk и tcl явно: by:
./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/lib64 -ltcl8.5 -L/usr/lib64 -ltk8.5"
Кроме того, вся статья для Процесс установки python: Построение Python из Source
Я думаю, что наиболее полным ответом на этот вопрос является принятый ответ:
Как заставить tkinter работать с установкой Ubuntu по умолчанию Python 2.7?
Я выяснил это после слишком много времени, потраченного на эту проблему, поэтому, надеюсь, я смогу спасти кого-то еще от хлопот.
Я обнаружил, что этот старый отчет об ошибке был признан недействительным, что упомянула точную проблему, у меня был Tkinter.py, но он не смог найти модуль _tkinter: http://bugs.python.org/issue8555
Я установил пакет tk-dev с apt-get и перестроенным Python с использованием ./configure, make и make install в каталоге Python2.7.3. И теперь мой Python2.7 может импортировать Tkinter, yay!
. Я немного недоумеваю, что пакет tk-dev вообще не упоминается в документации по установке Python .... ниже еще одна полезная ресурс по отсутствующим модулям в Python, если, как и я, кто-то должен обнаружить, что они пропадают больше, чем _tkinter.
blockquote>
О, я только что последовал за решением, которое Игнасио Васкес-Абрамс предлагает, чтобы установить tk-dev перед созданием питона. (Построение Python-3.6.1 из исходного кода на Ubuntu 16.04.)
Были предварительно скомпилированные объекты и двоичные файлы, которые у меня были вчера, но я не очищал объекты и просто строю на тот же путь сборки. И это прекрасно работает.
sudo apt install tk-dev
(On the python build path)
(No need to conduct 'make clean')
./configure
make
sudo make install
Вот и все!
Перед созданием Python установите tk-devel
(или аналогично названный пакет).
ImportError: No module named _tkinter
, когда я пытаюсь импортировать tkinter. Я использую python3.4.0, скомпилированный из источника на ubuntu 13.10.
– ARF
4 April 2014 в 23:02
tk-devel
? Вы должны дать хотя бы минимальное объяснение того, почему это должно быть полезно в этом случае.
– nbro
8 August 2015 в 09:20
В Arch / Manjaro просто установите пакет tk
:
sudo pacman -S tk
ImportError: libtk8.6.so: cannot open shared object file: No such file or directory
.
– DearVolt
7 September 2017 в 19:25
Чтобы заставить это работать с pyenv
на Ubuntu 16.04, мне пришлось:
$ sudo apt-get install python-tk python3-tk tk-dev
Затем установить версию Python, которую я хотел:
$ pyenv install 3.6.2
Тогда Я мог бы импортировать tkinter просто отлично:
import tkinter
Этот симптом также может возникать, когда более поздняя версия python (например, 2.7.13) была установлена в / usr / local / bin «наряду с« версией релиза python », а затем последующим обновлением операционной системы (скажем, , Ubuntu 12.04 -> Ubuntu 14.04) не удаляет обновленный python там.
Чтобы исправить эту несовместимость, нужно
a) удалить обновленную версию python в / usr / local / bin;
b) удалить python-idle2.7; и
c) переустановите python-idle2.7.
Была такая же проблема с Fedora с Python 2.7. Оказывается, требуются дополнительные пакеты:
sudo dnf install tk-devel tkinter
После установки пакетов этот пример hello-world , похоже, отлично работает на Python 2.7:
$ cat hello.py
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
$ python --version
Python 2.7.8
$ python hello.py
И через пересылку X11 это выглядит так:
Обратите внимание, что в Python 3 имя модуля является строчным, а другие пакеты вероятно, необходимы ...
from tkinter import *
tk
. Он использовался толькоmatplotlib
, и это может быть обходным путем: stackoverflow.com/a/4935945/1959808 – Ioannis Filippidis 18 November 2015 в 07:31