ImportError: Không có tên '_tkinter', vui lòng cài đặt gói python3-tk


28

Tôi mới dùng Ubuntu và Linux nói chung.

Tôi đã tạo một hệ điều hành khởi động kép trên máy tính xách tay của mình (Windows 10 và Ubuntu).

  • Gõ: sudo apt-get install python3-tk(hoặc thậm chí python-tk) không hoạt động.
  • Đang cố gắng cài đặt python3-devhoặc python-devel(không có may mắn).
  • Tải xuống Tcl và Tk để cài đặt thủ công.

Trong Windows 10 Bash subsystem, Tk và Tcl đã được bao gồm, vì vậy tôi nghĩ Ubuntu đã có nó. Nhưng, tôi muốn sử dụng máy tính để bàn Ubuntu của mình để phát triển ứng dụng GUI GUI.

Vậy, làm cách nào tôi có thể cài đặt Tcl / Tk để sử dụng trong Python 3.5 để phát triển GUI?

Tôi đã tải Python 3.5.2 tốt nhưng cần kích hoạt các mô-đun GUI.

Mã để kiểm tra Tk đang hoạt động là:

  1. Kiểu python3
  2. Kiểu:

    import tkinter   
    tkinter._test()
  3. Kết quả: màn hình bật lên GUI This is a Tcl/Tk version..


3
"Tôi đã tải Python 3.5.2" - chính xác như thế nào? nếu bạn đang chạy một python được cài đặt thủ công thì việc cài đặt các gói python hệ thống với apt-get không có khả năng giúp đỡ
Steeldo 23/8/2016

1
Tôi thấy rằng câu trả lời của bạn cho câu hỏi của riêng bạn là biên dịch Tcl / Tk từ nguồn nhưng tôi không nghĩ rằng điều đó là cần thiết trừ khi bạn cài đặt Python theo cách thủ công, tức là không sử dụng trình quản lý gói Apt. Bạn có thể làm rõ nếu bạn đã cài đặt Python bằng tay? Cài đặt python3-tkvà sau đó chạy mã Python mà bạn cung cấp hoạt động trên hệ thống của tôi Python 3.
edwinksl

Câu trả lời:


30

6
Lưu ý - đối với python3.6 trong đó python3.5 là mặc định của tôi, tôi đã phải sử dụng ... cài đặt python3.6-tk ....
SteveJ

+1. Tôi sẽ thêm vào cho những người đọc điều này rằng tkinter dường như không có gói PyPI để sử dụng trình quản lý gói Ubuntu như được đề xuất trong câu trả lời này có thể là lựa chọn tốt nhất tiếp theo.
dpritch

1
@dpritch Có một gói có sẵn trong kho vũ gọi [pypibrowser] ( packages.ubuntu.com/... mà nguồn cung cấp các chức năng Tôi tin rằng bạn đang tìm kiếm Cheers.!
Elder Geek

python3-tkinterđối với tôi trên Fedora dnfít nhất.
Pysis

@Pysis Tôi xin lỗi vì bất kỳ sự nhầm lẫn nào bạn có thể gặp phải. Câu trả lời này giống như toàn bộ trang web này là về Ubuntu. Bạn có thể được hưởng lợi từ các tour du lịch. Câu đầu tiên làm cho nó khá rõ ràng, nếu không, rõ ràng hơn có sẵn ở đây. Chúc mừng!
Anh Cả Geek

26

Đối với môi trường ảo python 3.6 với Python 3.5 là python "hệ thống" (Ubuntu), tôi đã phải cài đặt tk 3.6 để phù hợp;

sudo apt-get install python3.6-tk

Con trăn mặc định của tôi trong ubfox là 3.5, vì vậy khi sử dụng venv cho 3.6, tôi sẽ gặp lỗi nhập. Làm tôi phát điên một lúc.

[Chỉnh sửa: Khi câu hỏi này già đi]

Nhìn chung, dường như nếu một người đang sử dụng một môi trường ảo với một con trăn có phiên bản khác với máy cơ sở thì người ta phải cài đặt tk cho phiên bản của con trăn được sử dụng trong môi trường ảo.

sudo apt install python3.x-tk

Trong đó 3.x sẽ phù hợp với phiên bản của môi trường ảo.

[Chỉnh sửa]

Có thể cần phải thêm kho lưu trữ cho tk. Theo kinh nghiệm của tôi, đó là cùng một kho lưu trữ mà tôi đã kéo python3.6, nhưng điều đó có thể thay đổi theo thời gian;

sudo add-apt-repository ppa:deadsnakes/ppa

1
Hấp dẫn. Bạn có thể đi xa hơn để giải thích PPA nào bạn đã cài đặt nó từ chừng nào tôi có thể thấy python3.6-tk không tồn tại trong kho lưu trữ tại thời điểm này.
Anh Cả Geek

1
Tôi đã thực hiện một chỉnh sửa thêm trong một nỗ lực để làm cho nó hiện tại hơn.
Anh Cả Geek

3
CUỐI CÙNG! Đây là công việc cho tôi khi sudo apt-get install python3-tkkhông. Cảm ơn
Peter

2
Đối với python 3.7 tôi đã phải sử dụng sudo apt-get install python3.7-tkđể làm cho nó hoạt động
ilias

Điều đó là vậy đó. Giải pháp duy nhất hiệu quả với tôi trong mười hai trang của Stackoverflow.
Avio

0

Điều này có thể thú vị khi cài đặt từ nguồn (mà hầu hết người dùng python sẽ không):

Sau khi cài đặt tcl và tk .

Quay trở lại phiên bản Python của bạn, làm make. Và, nếu nhiều phiên bản pythontồn tại, làm a make altinstall.

  1. Mở Python3.5
  2. kiểu:

    import tkinter
    tkinter._test()
  3. kết quả OK - GUI GUI mở và hoạt động như mong đợi.


2
-1 Điều này sẽ không liên quan đến hầu hết mọi người vì hầu hết sẽ cài đặt thông qua trình quản lý gói hơn là từ nguồn.
RockJake28

thêm giới thiệu, vì vậy nó sẽ không nhầm lẫn và vẫn có thể giúp đỡ một người nào đó
mit

0

Trong trường hợp của tôi, tôi đã gặp lỗi tương tự như "ImportError: Không có mô-đun nào có tên '_tkinter'" cho python3.5 mặc dù thực hiện các thao tác sau: - Cài đặt thư mục python3-tk và tkinter-dev - Tkinter có sẵn trong / usr / lib / python3.5.

Các lỗi quan sát được từ các tập tin sau:

Tệp "/usr/local/lib/python3.5/tkinter/ init .py", dòng 35, trong nhập _tkinter # Nếu điều này không thành công, Python của bạn có thể không được cấu hình cho Tk

Tuy nhiên, khi tôi chỉ đơn giản chạy python từ / usr / bin như /usr/bin/python3.5 từ terminal, nó đã hoạt động với tôi!

Nói tóm lại, chỉ cần đảm bảo phiên bản python đang chạy từ thiết bị đầu cuối đã cài đặt và cấu hình tkinter :)

Tôi đã cài đặt Ubuntu16.04 trên hệ thống của mình, đi kèm với python2.7 và python3.5 mặc định


0

Chỉ cài đặt các tệp thư viện có thể không hoạt động vì bạn muốn sử dụng chính thư viện không phát triển nó.

Điều này làm việc cho tôi:

$ sudo apt install tk8.6-dev

trong khi điều này có thể trả lời câu hỏi, có lẽ bạn có thể mở rộng nó để giải thích lệnh trên làm gì và tại sao nó có thể khắc phục vấn đề?
Joshua Besneatte

ismailarilik Điều mà @JoshuaBesneatte đang cố nói là: không chỉ cung cấp cho người yêu cầu các lệnh, mà hãy giải thích những lệnh đó làm gì và tại sao anh ấy / cô ấy nên áp dụng nó. Vì thế, câu trả lời của bạn có khả năng bị xóa vì thiếu chất lượng ... :-(
Fabby
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.