programing

Tkinter: "Python이 Tk에 대해 구성되지 않았을 수 있습니다."

kingscode 2023. 5. 21. 14:41
반응형

Tkinter: "Python이 Tk에 대해 구성되지 않았을 수 있습니다."

오늘 저는 Tkinter와 함께 일하기를 원했지만 몇 가지 문제가 있습니다.

Python 3.2 (r32:88445, Mar 28 2011, 04:14:07) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from tkinter import *
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python3.2/tkinter/__init__.py", line 39, in <module>
import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

그렇다면 어떻게 Python 3.2를 Tkinter와 함께 작동하도록 구성할 수 있습니까?

Arch에 Arch/Manjaro .tk:

sudo pacman -S tk

Linux, Windows(WSL/Ubuntu) 및 MacOS용 솔루션

여러 가지 시도를 해본 결과, 다음과 같은 방식으로 작동 방식은 다음과 같습니다.

$ brew install python-tk

를 설치합니다.tk-devel(또는 비슷한 이름의 패키지) Python을 빌드하기 전에.

기능을 수면려하행이와 하려면 다음과 같이 하십시오.pyenvUbuntu 16.04 및 18.04에서는 다음 작업을 수행해야 했습니다.

$ sudo apt-get install python-tk python3-tk tk-dev

그런 다음 내가 원하는 Python 버전을 설치합니다.

$ pyenv install 3.6.2

그러면 tkinter를 잘 가져올 수 있습니다.

import tkinter

http://wiki.python.org/moin/TkInter 에 따르면:

"_tkinter라는 이름의 모듈 없음"으로 실패할 경우 이 모듈(C에서 구현된 확장 모듈)을 포함하도록 Python 구성을 수정해야 합니다.모듈/설정을 편집하지 마십시오(최신 버전이 아님).Tcl 및 Tk를 설치하거나(RPM을 사용하는 경우 -devel RPM도 설치), 또는 Tcl/Tk가 설치된 올바른 위치를 가리키도록 setup.py 스크립트를 편집해야 할 수도 있습니다.기본 위치에 Tcl/Tk를 설치하는 경우 "make"를 다시 실행하면 _tkinter 확장자가 만들어집니다.

그래서 많은 사람들이 (나를 포함해서) 이 문제를 가지고 있었던 것으로 보이며, 저는 파이썬이 컴파일되었을 때 Tkinter가 제 시스템에 설치되지 않았다는 것을 발견했습니다.

게시물은 다음을 통해 문제를 해결하는 방법을 설명합니다.

  1. 가상 환경/파이썬 배포 제거
  2. 를 Tkinter와 함께 합니다.sudo apt-get install tk-dev) (데브용) 또는.sudo pacman -S tk치만/자로용아)
  3. 그런 다음 python 컴파일을 다시 진행합니다.

이것은 저에게 놀라운 효과가 있었습니다.

저도 비슷한 문제에 직면했습니다.는 를설하여해다니습을 하여 해결했습니다.python-tk내 생각에는.

mac :brew install python-tk.

페도라에서 파이썬 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 포워딩을 통해 다음과 같이 구현됩니다.

X11을 통한 헬로 월드

Python 3에서는 모듈 이름이 소문자이고 다른 패키지가 필요할 수 있습니다.

from tkinter import *

저는 아직 논평할 수 없기 때문에, 다른 게시물에 대한 제 대답은 다음과 같습니다.

저는 여전히 파이썬 3.9를 사용하고 있기 때문에, 이 코드는 저에게 적합합니다.

brew install python-tk@3.9

사용하는 경우에는brew install python-tk는 키 합니다.

오 저는 방금 이그나시오 바스케스-아브람스가 제안한 솔루션을 따랐습니다. 이 솔루션은 파이썬을 구축하기 전에 tk-dev를 설치하는 것입니다. (Ubuntu 16.04의 소스에서 파이썬-3.6.1 구축)

어제 빌드한 사전 컴파일된 개체와 바이너리가 있었지만, 개체를 정리하지 않고 동일한 빌드 경로에서 다시 빌드했습니다.그리고 그것은 아름답게 작동합니다.

sudo apt install tk-dev
(On the python build path)
(No need to conduct 'make clean')
./configure
make
sudo make install

바로 그거야!

sudo apt-get install python3-tk

2python 2.7.에서 이 했습니다.
tcl을 하고 다시 구성하는 tktktcl의 경로는 다음과 같습니다.

./configure --with-tcltk-includes="-I/usr/include" --with-tcltk-libs="-L/usr/lib64 -ltcl8.5 -L/usr/lib64 -ltk8.5"

또한 Python 설치 프로세스에 대한 전체 기사:소스에서 Python 구축

Tkinter 설치 중


python -m pip install tk-tools

또는

sudo apt install python3-tk

코드

from tkinter import *

root = Tk()
root.title('My App')
# Code
root.mainloop()

이제 우분투에서 무슨 일이 일어나고 있는지 알아냈습니다.

다음 단계에 따라 문제를 해결합니다.

  1. 버전 python3 --version
  2. 당신이 파이썬 3.10을 가지고 있다고 상상해 봅시다.
  3. 그런 다음 bellow 명령을 사용하여 python 버전용 Python-tk를 설치합니다.
  4. sudo apt install python3.10-tk

하고 python3가 있습니다.8을 사용하면 간단합니다.sudo apt install python{"use your python version here"}-tk

이에 대한 가장 완전한 답변은 다음과 같은 수용된 답변이라고 생각합니다.

Ubuntu의 기본 Python 2.7 설치로 Tkinter를 작동시키는 방법은 무엇입니까?

저는 이 문제에 너무 많은 시간을 들인 후에 그것을 알게 되었고, 그래서 제가 다른 사람의 번거로움을 덜어줄 수 있기를 바랍니다.

저는 제가 가지고 있는 정확한 문제를 언급한 이 오래된 버그 보고서가 유효하지 않다고 생각되는 것을 발견했습니다. 저는 Tkinter.py 를 가지고 있었지만 _buginter: http://bugs.python.org/issue8555 모듈을 찾을 수 없었습니다.

tk-dev 패키지를 apt-get과 함께 설치하고, Python 2.7.3 디렉터리에 ./configure, make, make install을 사용하여 Python을 재구성했습니다.그리고 이제 내 파이썬 2.7은 Tkinter를 가져올 수 있습니다, yay!

tk-dev 패키지가 Python 설치 설명서에 전혀 언급되지 않은 것이 조금 유감입니다. 아래는 Python에서 누락된 모듈이 _tkinter 이상 누락된 것을 누군가가 발견해야 하는 경우에 유용한 또 다른 리소스입니다.

Windows 및 Windows Subsystem for Linux를 사용하는 모든 사용자에게 명령줄에서 python 명령을 실행할 때 WSL에서 python 설치를 실수로 실행하지 않도록 하십시오!이것은 방금 저에게 꽤 두통을 주었습니다.이에 대해 수행할 수 있는 빠른 확인은 다음과 같습니다.
which <python command you're using>
만약 그것이 다음과 같은 것을 인쇄한다면./usr/bin/python2비록 당신이 파워셸에 있지만, 그것이 아마도 일어나고 있는 일일 것입니다.

Amazon Linux OS를 실행하는 AWS 인스턴스에서 실행 중인 경우 이 문제를 해결하는 마법 명령은 다음과 같습니다.

sudo yum install tkinter

Linux 빌드를 결정하려면 다음을 수행합니다.cat /etc/*release

이 증상은 최신 버전의 python(예: 2.7.13)이 릴리스 python 버전과 함께 /usr/local/bin에 설치된 후 후속 운영 체제 업그레이드(예: Ubuntu 12.04 --> Ubuntu 14.04)에서 업데이트된 python을 제거하지 못하는 경우에도 발생할 수 있습니다.

그 비호환성을 고치기 위해서는 다음과 같이 해야 합니다.

/usr/local/bin에서 python의 업데이트된 버전을 제거합니다.

python-sys2.7 제거 및

python-sys2.7을 다시 설치합니다.

python-tk, python3-tk를 설치한 후에도 당신의 python이 Tk에 대해 구성되어 있지 않다는 오류가 발생했습니다.

그래서 저는 tk8.6-dev를 추가로 설치한 다음 다시 Python을 빌드하고 make, make install을 다시 실행합니다.

제가 이것을 했을 때 저는 화면에서 _tkinter와 관련 모듈을 구축하고 있다는 메시지를 보았습니다.일단 그것이 끝나면, 저는 'import tkinter'를 시도했고 그것은 효과가 있었습니다.

Manjaro(Arch Linux)를 사용하는 경우 터미널에서 아래 명령을 실행합니다.

sudo pacman -S tk

저의 경우, pyenv가 설치되었지만 저는 그것을 알지 못했습니다.올바른 버전의 설치 후 tkinter 구성을 수정하기 위해 pyenv를 통해 python 버전을 제거하고 다시 설치해야 했습니다.python3.x-tk.

리눅스에서 https://asdf-vm.com/ 을 사용하여 파이썬을 관리하는 경우:

페도라

$ asdf uninstall python 3.10.10
$ sudo dnf install tk-devel
$ asdf install  python 3.10.10

우분투

$ asdf uninstall python 3.10.10
$ sudo apt-get install tk-dev
$ asdf install  python 3.10.10

언급URL : https://stackoverflow.com/questions/5459444/tkinter-python-may-not-be-configured-for-tk

반응형