ImportError:「_tkinter」という名前はありません。python3-tkパッケージをインストールしてください


28

私はUbuntuとLinux全般には初めてです。

ラップトップ(Windows 10およびUbuntu)でデュアルブートOSを作成しました。

  • 入力:(sudo apt-get install python3-tkまたはpython-tk)が機能しませんでした。
  • python3-devまたはpython-devel(運なし)をインストールしようとしています。
  • TclおよびTkをダウンロードして、手動でインストールします。

Windows 10 Bash SubsystemにはTkとTclがすでに含まれているので、Ubuntuにはすでにあると思いました。しかし、私はUbuntuデスクトップを使用してPython GUIアプリを開発したいと考えています。

それでは、GUI開発のためにPython 3.5で使用するTcl / Tkをどのようにインストールできますか?

Python 3.5.2をロードしましたが、GUIモジュールを有効にする必要があります。

Tkが機能していることをテストするコードは次のとおりです。

  1. タイプ python3
  2. タイプ:

    import tkinter   
    tkinter._test()
  3. 結果:GUIポップアップが表示されます This is a Tcl/Tk version..


3
「Python 3.5.2をロードしました」 -どのくらい正確ですか?手動でインストールされたpythonを実行している場合、apt-getを使用してシステムpythonパッケージをインストールしても解決しない可能性があります
-steeldriver

1
あなた自身の質問に対するあなたの答えはソースからTcl / Tkをコンパイルすることだとわかりましたが、Pythonを手動でインストールしない限り、つまりAptパッケージマネージャーを使用せずに、それは必要ないと思います。Pythonを手動でインストールしたかどうかを明確にできますか?python3-tkあなたが提供したPythonコードをインストールして実行すると、私のシステムPython 3で動作します。
edwinksl17年

回答:


30

6
注-私のデフォルトあったpython3.5にpython3.6のために、私が使用していた... python3.6-TK ....インストール
SteveJ

+1。私はこれを読んでいる人のために、tkinterにはPyPIパッケージがないようだと付け加えますので、この答えで提案されているUbuntuパッケージマネージャを使用することが次善の選択肢であると思われます。
dpritch

1
@dpritch [pypibrowser](と呼ばれる宇宙のリポジトリで利用可能なパッケージがありpackages.ubuntu.com/...私はあなたが探していると信じていた機能を提供乾杯!
エルダーオタク

python3-tkinterdnf少なくともFedoraの場合は。
Pysis

@Pysisご迷惑をおかけして申し訳ありません。このサイト全体のような答えはUbuntuに関するものです。ツアーの恩恵を受けるかもしれません最初の文はそれをかなり明確にしますが、そうでない場合は、ここでさらに明確にすることができます。乾杯!
オタク長老

26

「システム」Python(Ubuntu)としてPython 3.5を使用するPython 3.6仮想環境の場合、一致させるためにtk 3.6をインストールする必要がありました。

sudo apt-get install python3.6-tk

Ubuntuのデフォルトのpythonは3.5だったため、3.6でvenvを使用すると、インポートエラーが発生しました。しばらく私を夢中にさせた。

[編集:この質問が古くなるにつれて]

一般的に、ベースマシンとは異なるバージョンのpythonで仮想環境を使用している場合、仮想環境で使用されているpythonのバージョンにtkをインストールする必要があります。

sudo apt install python3.x-tk

3.xは仮想環境のバージョンと一致します。

[編集]

tkのリポジトリを追加する必要がある場合があります。私の経験では、python3.6を取得したリポジトリと同じリポジトリでしたが、時間の経過とともに変化する可能性があります。

sudo add-apt-repository ppa:deadsnakes/ppa

1
面白い。現時点では、リポジトリにpython3.6-tkが存在しないことがわかる限り、どのPPAをインストールしたかを説明することもできます。
オタク長老

1
それをより最新のものにするために、さらに編集を加えました。
オタク長老

3
最後に!sudo apt-get install python3-tkそうでなかったとき、これは私のために働いた。ありがとう
ピーター

2
python 3.7 sudo apt-get install python3.7-tkでは、動作させるために使用する必要がありました
ilias

それでした。Stackoverflowの12ページで私のために働いた唯一のソリューション。
Avio

0

これは、ソースからインストールするときに興味深いかもしれません(ほとんどのpythonユーザーはそうしません):

tclおよびtkをインストールした後。

Pythonのバージョンに戻りますmake。そして、複数のバージョンがpython存在する場合、を実行しmake altinstallます。

  1. Python3.5を開きます
  2. タイプ:

    import tkinter
    tkinter._test()
  3. 結果OK-ポップGUIが開き、期待どおりに機能します。


2
-1ほとんどはソースからではなくパッケージマネージャーを介してインストールされるため、これはほとんどの人には関係ありません。
RockJake28

それは混乱し、まだ誰かを助けるかもしれませんので、ご紹介を追加しました
MIT

0

私の場合、次のことを実行しているにもかかわらず、python3.5で「ImportError:No module named '_tkinter'」と同じエラーが発生していました。-python3-tkおよびtkinter-devのインストール-/ usr / lib / python3.5

観察されたエラーは、次のファイルからのものでした。

ファイル "/usr/local/lib/python3.5/tkinter/ init .py"、行35、import _tkinter#これが失敗した場合、PythonはTk用に設定されていない可能性があります

しかし、ターミナルから/usr/bin/python3.5のように/ usr / binからpythonを実行しただけでうまくいきました!

要するに、ターミナルから実行されるpythonバージョンにtkinterがインストールされ、構成されていることを確認してください :)

デフォルトのpython2.7とpython3.5が付属しているシステムにUbuntu16.04がインストールされています


0

ライブラリ自体を開発するのではなく、ライブラリ自体を使用するため、ライブラリファイルだけをインストールしても機能しない場合があります。

これは私のために働いた:

$ sudo apt install tk8.6-dev

これは質問に答えるかもしれませんが、おそらく上記のコマンドが何をするのか、なぜ問題を修正できるのかを説明するためにそれを展開できますか?
ジョシュア・ベスネッテ

ismailarilik@JoshuaBesneatteは唯一の依頼者に命令を与えていないが、彼/彼女はそれを適用すべき理由のコマンドは何をすべきかを説明し、:で言おうとしています。
現状
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.