2015-09-30 13 views
6

Pythonのrequestsライブラリがインストールされていて、何ヶ月も完璧に動作しています。Python電子メールモジュールImportError:モジュール名がutils

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import requests 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/usr/local/lib/python2.7/dist-packages/requests/__init__.py", line 58, in <module> 
    from . import utils 
    File "/usr/local/lib/python2.7/dist-packages/requests/utils.py", line 26, in <module> 
    from .compat import parse_http_list as _parse_list_header 
    File "/usr/local/lib/python2.7/dist-packages/requests/compat.py", line 7, in <module> 
    from .packages import chardet 
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/__init__.py", line 3, in <module> 
    from . import urllib3 
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/__init__.py", line 10, in <module> 
    from .connectionpool import (
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.py", line 37, in <module> 
    from .request import RequestMethods 
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/request.py", line 6, in <module> 
    from .filepost import encode_multipart_formdata 
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/filepost.py", line 8, in <module> 
    from .fields import RequestField 
    File "/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/fields.py", line 1, in <module> 
    import email.utils 
ImportError: No module named utils 

トラブル

>>> import email 
>>> import email.utils 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: No module named utils 

utilsのPython 2.7でemailモジュールに関連しているutilsを呼び出すことが明らかにPythonのemailライブラリの一部であるが、それはアクセスすることはできません。私はアンインストールして再インストールする場合:すべてのutils.pyの最悪

$ sudo pip install email 

Collecting email 
    Downloading email-4.0.2.tar.gz (1.2MB) 
    100% |████████████████████████████████| 1.2MB 286kB/s 
Installing collected packages: email 
    Running setup.py install for email 
Successfully installed email-4.0.2 

を実際に存在しています。私は間違って何をしていますか?ほとんどの場合

$ ls /usr/local/lib/python2.7/dist-packages/email/ 
base64mime.py errors.py  header.py  message.py  parser.pyc 
base64mime.pyc errors.pyc  header.pyc  message.pyc  quoprimime.py 
charset.py  feedparser.py __init__.py mime   quoprimime.pyc 
charset.pyc  feedparser.pyc __init__.pyc _parseaddr.py test 
encoders.py  generator.py iterators.py _parseaddr.pyc utils.py 
encoders.pyc generator.pyc iterators.pyc parser.py  utils.pyc 
+1

モジュール検索パスに自分自身の 'email.py'モジュールがありますが、それは標準ライブラリのものをシャドーイングしていますか? –

+0

はい私はそれに気づいた! **頭痛** –

答えて

9

(現在の作業ディレクトリを含む)モジュール検索パスに独自のモジュールのいずれかが実際にemailと呼ばれています。これにより、Pythonは代わりにそのモジュールをピックアップし、emailモジュールを標準ライブラリからシャドウイングし、そのインポートエラーにつながります。

モジュールの名前を他の名前に変更してください。

関連する問題