hereの指示に従ってvirtualenv内のpipをアップグレードしようとしています。システムのpythonが電子メールモジュールからMessageという名前をインポートできないため、アップグレードは失敗します。Virtualenvパッケージのアップグレードとインストールに失敗しました:名前をインポートできません。メッセージ
(newsfeed)myhost:newsfeed admin$ pip install --upgrade pip
Traceback (most recent call last):
File "/Users/admin/newsfeed/newsfeed/bin/pip", line 7, in <module>
from pip import main
File "/Library/Python/2.7/site-packages/pip/__init__.py", line 9, in <module>
from pip.log import logger
File "/Library/Python/2.7/site-packages/pip/log.py", line 8, in <module>
from pip import backwardcompat
File "/Library/Python/2.7/site-packages/pip/backwardcompat/__init__.py", line 69, in <module>
from email import Message as emailmessage
ImportError: cannot import name Message
この問題は、単にピップのアップグレードではなくvirtualenvの中に何もインストールしていないです。新しいパッケージをインストールしようとすると、同じエラーが発生します。
virtualenvの外側のpython端末では、メッセージをインポートすることはできませんが、virtualenvの内部で行うことができます。
また、同じマシン上の別のvirtualenvでは、パッケージのインストールまたはアップグレードでエラーが発生しません。
なぜこのvirtualenvはパッケージをアップグレードまたはインストールできませんか?
パスのどこかに、標準ライブラリの電子メールモジュールをシャドーイングする可能性のあるemail.pyファイルがありますか。あなたが 'python -c '電子メールをインポートするのであれば、printen(電子メール.__ファイル__)' 'virtualenvでは出力は何ですか? – snakecharmerb
ありがとうございます。あなたのコマンドの出力は次の通りです:email/__ init __。pyc – ABM
標準ライブラリの電子メールパッケージであれば、出力のパスは '/ Library/Python/2.7/site-packages'になるはずです。現在のディレクトリまたは__ init __ .pyファイルを含むパス上の他の場所に_email_という名前のフォルダがあるように見えます。名前を変更する/移動し、問題が解決するかどうか確認してください。 – snakecharmerb