최근 최신 python3.X를 설치하는 동안 문제가 발생했습니다. After 의 패키지를
사용하여 설치했습니다 . 모듈 가져오기를 시도했지만 성공하지 못했습니다. Python-3.4.2.tar.xz
python.org
tkinter
출력은 import tkinter
다음과 같습니다.
>>> tkinter 가져오기 역추적(가장 최근 호출 마지막): 파일 "", 첫 번째 줄, in 파일 "/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
Ubuntu 14.04.1에서 Python의 기본 설치(Python-3.4.0)에 대해 작동합니다.
답변1
모듈 을 사용하여 소스에서 python3.4.2를 빌드하려면 _tkinter
다음 빌드 종속성을 설치해야 합니다.
sudo apt-get install tk8.6-dev
그런 다음 파일이 자동으로 tk/tcl 헤더를 감지하고 모듈을 생성하므로 지원을 make
추가하기 위해 다시 실행하기만 하면 됩니다 ._tkinter
setup.py
~/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.
[...]
이제 python3.4.2에서 tkinter를 가져올 수 있습니다:
~/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가 꼭 필요한 경우가 아니라면 14.04의 기본 python3 버전을 사용하겠습니다(3.4.0)
그런 다음 해야 할 일은 다음 패키지를 설치하는 것뿐입니다.
sudo apt-get install python3-tk tk
그리고 다음과 같이 Python 인터프리터를 시작합니다.
/usr/bin/python3
그렇지 않으면 항상 (3.4.2)에서 설치한 버전을 받게 됩니다 /usr/local
.
이제 python3에서 tk 가져오기가 작동합니다.
$ 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
matplotlib에만 tkinter가 필요한 경우 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이 열리면서 문제가 해결되었습니다.