Pythonインポートモジュールエラー


0

Ubuntuでpythonに問題があります。標準パッケージの一部であるモジュールはインポートできないようです。次の行をインポートしようとしているPythonの例:

from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase
from email import encoders

コードは以下のエラーを生成します。

from email.MIMEMultipart import MIMEMultipart
ImportError: No module named MIMEMultipart

私はシェルを介してファイルにアクセスできますが、ファイルを実行するときに直接アクセスできないため、すべてのパッケージはデフォルトで適切にインストールされています:python email.py


どのバージョンのPythonを使用していますか?あなたのPYTHONPATHは何ですか?MIMEMultipartモジュールはPYTHONPATHにありますか?
mtak

ピーナッツギャラリー。ただし、プログラムを「email.py」と呼ぶ場合は、名前を変更してください。指定されたモジュールと同じ名前のスクリプトは、import
アナクスナマン

回答:


0

モジュールと求心性サブモジュールを正しく指定していないと思います。実際に行う必要があります:

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders

helpはpython の機能を使用して、「パッケージコンテンツ」の下にある電子メールモジュールの内容を確認し、たとえば次MIMEmultipartのクラスであると推測しましたmime

help("email")
help("email.mime.multipart")

編集:

Python2のみで特定のモジュール内のオブジェクトがどこにあるのかを簡単に見つける簡単な方法は、次のとおりです(python3はこれで動作しないようです)。

getattr(__import__("<module_name>"), "<object_name>").__dict__["__name__"]

あなたの場合、それは次のようなものです:

getattr(__import__("email"), "MIMEMultipart").__dict__["__name__"]
getattr(__import__("email"), "MIMEText").__dict__["__name__"]
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.