2011-01-24 127 views
143

Tôi đang cố gắng nhập Tkinter. Tuy nhiên, tôi nhận được một lỗi nói rằng Tkinter chưa được cài đặt:Cài đặt tkinter cho Python

ImportError: No module named _tkinter, please install the python-tk package

tôi có lẽ có thể cài đặt nó bằng cách sử quản lý synaptic (? Tôi có thể), tuy nhiên, tôi sẽ phải cài đặt nó trên mỗi máy tôi chương trình trên. Có thể thêm thư viện Tkinter vào vùng làm việc của tôi và tham khảo nó từ đó không?

+0

đã là giải pháp câu trả lời gợi ý làm việc cho u? Nó không dành cho tôi: 'E: Không thể xác định vị trí gói python-tk' đã làm bất kỳ vấn đề nào? –

+0

Đối với những gì nó có giá trị, *** nếu bạn nhận được lỗi này với *** 'matplotlib' nó không phải là luôn luôn cần thiết để cài đặt Tkinter. Gọi 'matplotlib.use ('Agg')' ngay sau khi nhập 'matplotlib'. –

Trả lời

227

Không dễ cài đặt Tkinter cục bộ để sử dụng với Python do hệ thống cung cấp. Bạn có thể xây dựng nó từ các nguồn, nhưng điều này thường không phải là ý tưởng tốt nhất với một bản phân phối dựa trên gói nhị phân mà bạn đang chạy.

Đó là an toàn hơn để apt-get install python-tk trên (các) máy của bạn. (Hoạt động trên các bản phân phối gốc Debian như cho Ubuntu; hãy tham khảo trình quản lý gói và danh sách gói của bạn trên các bản phân phối khác.)

+5

... Giả sử bạn đang sử dụng hệ thống có 'apt'. Rõ ràng, điều này sẽ không làm việc trên các cửa sổ, và có lẽ không phải trên một mac. –

+0

@BryanOakley: Chắc chắn rồi. Các poster dường như có một hộp Linux dựa trên apt, do đó câu trả lời. Điều này trông giống như một vấn đề hẹp. Tôi đã không mong đợi câu trả lời này để có được rất nhiều upvotes. – 9000

+21

Và cho python3 'apt-get install python3-tk' tại thời điểm nhận xét này cho ubuntu 15.04 – jmunsch

15

bạn sẽ cần gói và phụ thuộc của gói.

vì bạn đã đề cập đến phép synaptic, bạn phải sử dụng hệ thống dựa trên Debian. một cách để có được những gì bạn cần:

sudo apt-get install python-tk 
+0

'E: Không thể định vị gói python-tk' đã xảy ra sự cố này không? –

+0

@CharlieParker nó nằm trong repo chính của Ubuntu: https://packages.ubuntu.com/python-tk –

48

Nếu, như tôi, bạn không có quyền root trên mạng của bạn vì bạn bè tuyệt vời của bạn IS, và bạn đang làm việc trong một cài đặt cục bộ, bạn có thể có một số vấn đề với các phương pháp trên.

Tôi đã dành tuổi trên Google - nhưng cuối cùng, thật dễ dàng.

Tải xuống tcl và tk từ http://www.tcl.tk/software/tcltk/download.html và cài đặt chúng cục bộ.

Để cài đặt cục bộ trên Linux (tôi đã làm nó vào thư mục chính của tôi), giải nén các tệp .tar.gz cho tcl và tk. Sau đó mở các tệp readme bên trong thư mục ./unix. Tôi đã chạy

cd ~/tcl8.5.11/unix 
./configure --prefix=/home/cnel711 --exec-prefix=/home/cnel711 
make 
make install 

cd ~/tk8.5.11/unix 
./configure --prefix=/home/cnel711 --exec-prefix=/home/cnel711 --with-tcl=/home/cnel711/tcl8.5.11/unix 
make 
make install 

Nó có vẻ hơi đau nhưng các tệp nhỏ và cài đặt rất nhanh.

Sau đó chạy lại python setup.py buildpython setup.py install trong thư mục cài đặt python của bạn - và nó sẽ hoạt động. Nó làm việc cho tôi - và bây giờ tôi có thể nhập Tkinter v.v ... vào nội dung trái tim tôi - yipidy-yay. Toàn bộ buổi chiều đã dành cho điều này - hy vọng ghi chú này sẽ cứu người khác khỏi cơn đau.

+2

Xin chào Simon. Tôi chỉ nhận được ra khỏi boad của Linux. Tôi cần phải cài đặt tcl/tk và python cục bộ. Tôi muốn cài đặt chúng vào "/ home/cnel711/install /". Sau khi cài đặt tcl/tk. sao tôi nên đặt đường dẫn cho Python? và làm thế nào. Tôi cũng sử dụng ./configure để cài đặt python. cảm ơn – Samuel

+0

Hi Tôi đã có tcl/tk cài đặt tại địa phương và tôi xây dựng lại python. Nhưng, trong khi xây dựng python (cục bộ), tôi nhận được một lỗi: libtk8.6.so: không thể mở tập tin đối tượng được chia sẻ: Không có tập tin hoặc thư mục đó, và mô-đun _tkinter đã không được xây dựng. Tôi thậm chí đã cố gắng thiết lập đường dẫn đến thư viện tcl/tk của tôi với '--with_tcltk_libs' nhưng điều này không giúp được gì. – rivendell

+0

Cảm ơn điều này đã giúp tôi rất nhiều! Ngoài ra rất nhỏ: "Nếu tiền tố --exec không được cung cấp, giá trị mặc định là --prefix". từ tài liệu python: https://docs.python.org/2/install/ – Tom

24

Nếu bạn đang sử dụng Python 3 nó có thể là do bạn đang gõ Tkinter không tkinter

38

Trên thực tế, bạn chỉ cần sử dụng sau để cài đặt Tkinter cho python3:

sudo apt-get install python3-tk 

Bên cạnh đó, cho người dùng Fedora, sử dụng lệnh sau:

sudo dnf install python3-tkinter 
+1

Cảm ơn! Nó thực sự đòi hỏi python3-tk, không phải python-tk. – zkan

+0

Nếu bạn là một newbie Linux như tôi, lưu ý rằng nếu apt-get gặp sự cố khi tìm/cài đặt python3-tk, hãy thử chạy 'sudo apt-get update' trước. Trong hệ thống Linux Mint 18.3 32-bit của tôi, Synaptic và apt-get dường như yêu cầu thường xuyên hơn tôi nghĩ là ... – RBV

14

đối với Python 2.7:

You don't need to download Tkinter - it's an integral part of all Python distributions (except binary distributions for platforms that don't support Tcl/Tk).

như nó nói here. Trong trường hợp của tôi, trên Windows, những gì đã giúp được cài đặt lại bản phân phối Python. Có lẽ một thời gian dài trước đây tôi đã bỏ chọn tính năng cài đặt "Tcl/Tk". Sau khi cài đặt lại tất cả các công trình tốt và tôi có thể import _tkinterimport Tkinter.

0

Nếu bạn đang sử dụng Python 3 sau đó bạn phải cài đặt như sau:

sudo apt-get update 
sudo apt-get install python3-tk 

Tkinter cho Python 2 (python-tk) là khác nhau từ Python 3 's (python3-tk).

+0

Tại sao phải nâng cấp trước khi cập nhật? Và điều đó sẽ ảnh hưởng đến nhiều phần mềm hơn chỉ là python/tk. –

+1

@MatthewRead Tôi đã thay đổi nó. Tôi để nó ở đó một cách tình cờ và bạn nói đúng. Tôi không có liên quan gì đến tiến trình cài đặt Tk. – gon1332

+0

'E: Không thể xác định vị trí gói python3-tk' bạn có này không? –

8

Nếu bạn đang sử dụng RHEL, CentOS, Oracle Linux, vv Bạn có thể sử dụng yum để cài đặt mô-đun Tkinter

yum install tkinter 
+3

Lưu ý rằng thao tác này sẽ cài đặt 'tkinter' cho' python2' – confused00

+1

Fedora với python 3.5: 'sudo dnf install python3-tkinter' –

0

Có _tkinter và Tkinter - cả hai công việc trên Py 3.x Tuy nhiên, để được safe-Download Loopy và thay đổi thư mục gốc python của bạn (nếu bạn đang sử dụng một IDE như PyCharms) vào thư mục cài đặt của Loopy. Bạn sẽ nhận được thư viện này và nhiều hơn nữa.

+0

điên rồ? OP không bao giờ đề cập rằng –

9

Đối với người dùng Arch Linux, nó đi một chút như

sudo pacman -S tk 
3

tk-devel cũng cần phải được cài đặt trong trường hợp của tôi

yum install -y tkinter tk-devel

cài đặt những điều này và xây dựng lại python

1

Tình hình trên macOS vẫn là a bit complicated, nhưng có thể:

Python.org đề nghị tải xuống tkinter from ActiveState, nhưng bạn nên đọc trước their license (gợi ý: không phân phối lại hoặc muốn Hỗ trợ).

Khi tải xuống được mở OS X 10.11 đã từ chối vì không thể tìm thấy biên lai của tôi: "ActiveTcl-8.6.pkg không thể mở được vì nó đến từ một nhà phát triển không xác định".

Tôi đã theo dõi một OSXDaily fix from 2012 đề xuất cho phép từ mọi nơi. Nhưng OS X hiện đã thêm tùy chọn "Mở bất kỳ" để cho phép (ví dụ) Active-Tcl làm một lần tắt và tùy chọn "Mọi nơi" đã hết thời gian chờ.

New warning for "Anywhere"

2

Fedora phát hành 25 (hai mươi lăm)

dnf install python3-tkinter 

này đã làm việc cho tôi.

+0

Điều này cũng tồn tại trên f26. – mikeymop

-1

Nếu bạn muốn cài đặt nó, bạn cần phải đi đến thiết bị đầu cuối và kiểu của bạn: -

sudo apt-get python-tk

Và Nếu bạn muốn cập nhật một gói phần mềm hiện có hoặc python trong trường hợp này loại: -

sudo apt-get cập nhật

Sau đó, tất cả các gói của bạn sẽ được cập nhật. Và nếu bạn muốn gỡ bỏ một gói bạn chỉ cần gõ vào: -

sudo apt-get remove [tên gói] #in trường hợp này python-tk

+1

thông tin không chính xác trong câu trả lời này.'sudo apt-get python-tk' không phải là một lệnh hợp lệ. bạn có thể có nghĩa là 'sudo apt-get install python-tk'. Ngoài ra, 'sudo apt-get update' không nâng cấp bất cứ thứ gì, nó chỉ cập nhật danh sách gói địa phương của bạn. bạn cần chạy một 'nâng cấp' hoặc' nâng cấp 'để thực sự nâng cấp các gói. –

Các vấn đề liên quan