web-dev-qa-db-ja.com

Pmw使用時の「ImportError:tkinterという名前のモジュールがありません」

これが私の問題です: this の例でコードを実行しています。 RaspberryPiにPython 2.7と3をインストールしましたが、チェックとダブルチェックを行い、2.7でコードを実行しています。3ではなく2.7でPmw2.0.0をインストールしました。 、しかし実行しようとすると、「ImportError:tkinterという名前のモジュールがありません」エラーが発生します。私は常にTkinterを使用しているので、通常は正常に動作します。検索を行って、間違いなく「」と呼んでいることを確認しました。 「tkinter」ではなく「Tkinter」なので、Pmwの問題だと思います。これもトレースバック(質問の最後に完全に投稿されています)で示されているようです。私は一生できません。 Pmwが小文字の「tkinter」を探している特定の場所を見つけて、これを回避する方法がわからなくなっています。プラットフォームを切り替えることには熱心ではありません。これは作業用なので、修正できない場合を除きます。 、私はTkinterに固執する必要があります。ああ、私はPythonにかなり慣れていないので、ここにいる誰かが簡単に見つけられるのは単純な問題であることを知りたいと思います。

sysをインポートします。印刷sys.pathは私に与えます:

['/home/pi/Desktop', '/home/pi', '/usr/bin', '/usr/local/lib/python2.7/dist-packages/distribute-0.6.28-py2.7.Egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/pymodules/python2.7']

完全なトレースバックは次のとおりです。

Traceback (most recent call last):
  File "/home/pi/Desktop/LinkedMenusSample.py", line 151, in <module>
    Pmw.initialise(root)
  File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 131, in __getattr__
    self._initialise()
  File "/usr/local/lib/python2.7/dist-packages/Pmw/Pmw_2_0_0/lib/PmwLoader.py", line 89, in _initialise
    raise ImportError(msg)
ImportError: No module named tkinter
6
emily belzer

たぶん私はエラーを取り除く方法についてあなたを助けることができます。

ここに2つの考えがあります:

1)python 2.xxを使用し、python 3 pwmモジュールをインストールしました(TkinterはPythonからtkinterに名前が変更されました= 2から3)

2)インポートの前に次のことを行い、それが役立つことを願っています。

#import tkinter
#Traceback (most recent call last):
#  File "<pyshell#11>", line 1, in <module>
#    import tkinter
#ImportError: No module named tkinter

import sys, Tkinter
sys.modules['tkinter'] = Tkinter # put the module where python looks first for modules
#import tkinter # now works!
24
User

別の回避策は次のとおりです。

try:
    import tkinter
except:
    import Tkinter as tkinter

このようにして、モジュールtkinterを常に利用可能にし、Pythonバージョンに応じて、プログラムはtkinterまたはTkinterをロードします。

2
MarkWatney

CentOのmatplotlib.pyplot(python 2.7+)でも同じ問題に直面していました。 tkinterをインストールするだけで問題は解決しました。 Sudo yum install tkinter。これがお役に立てば幸いです。

1
Amrendra

間違ったモジュールの使用をインポートしました:import Tkinter

0
Aman Jain