email 安裝報錯 No module named 'cStringIO'

python 自動發送郵件需要用到 email,但是python3 在安裝email包的時候出現了難以解決的問題。

問題:

pip install email
Collecting email
  Using cached https://files.pythonhosted.org/packages/71/e7/816030d3b0426c130040bd068be62b9213357ed02896f5d9badcf46d1b5f/email-4.0.2.tar.gz
    ERROR: Command errored out with exit status 1:
     command: 'D:\anaconda\python.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\Administrator\\AppData\\Local\\Temp\\pip-install-ucmeohfy\\email\\setup.py'"'"'; __file__='"'"'C:\\Users\\Administrator\\AppData\\Local\\Temp\\pip-install-ucmeohfy\\email\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base pip-egg-info
         cwd: C:\Users\Administrator\AppData\Local\Temp\pip-install-ucmeohfy\email\
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "D:\anaconda\lib\site-packages\setuptools\__init__.py", line 18, in <module>
        import setuptools.version
      File "D:\anaconda\lib\site-packages\setuptools\version.py", line 1, in <module>
        import pkg_resources
      File "D:\anaconda\lib\site-packages\pkg_resources\__init__.py", line 36, in <module>
        import email.parser
      File "C:\Users\Administrator\AppData\Local\Temp\pip-install-ucmeohfy\email\email\parser.py", line 10, in <module>
        from cStringIO import StringIO
    ModuleNotFoundError: No module named 'cStringIO'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

搜尋了網上的答案,大致可以理解爲python2可以這麼安裝,但是python3中沒有 cStringIO 這個包,如果是單純引用 StringIO 可以 使用 from io import StringIO
但是這種方法沒用,因爲這是在安裝的時候出現的,我試着修改C:\Users\Administrator\AppData\Local\Temp\pip-install-ucmeohfy\email\email\parser.py這一文件內容,但是由於是安裝時出現的臨時文件,所以並不能進行修改。

解決方法:

1.看到安裝包的時候的第一行沒有?Using cached https://files.pythonhosted.org/packages/71/e7/816030d3b0426c130040bd068be62b9213357ed02896f5d9badcf46d1b5f/email-4.0.2.tar.gz,把這裏面的地址複製到瀏覽器中,直接將這個gz壓縮包下載下來;
2.將gz解壓縮出來,這時候如果嘗試使用python setup.py install會發現報錯,並沒有卵用,所以看第三部;
解壓後的文件:
解壓後的文件
3.壓縮包的文件名應該是 email-4.0.2(版本號不同數字不同),打開文件夾后里面會有doc、email等文件夾和setup.py、testall.py等文件,這時候把time這個文件夾複製到電腦中python的lib/site-packages 文件夾中,然後就可以正常使用email這個包了;
直接將裏面的email文件貼過去:
直接將裏面的email文件貼過去

個人猜測是發包人目前只針對了python2,沒有維護到python3的遷移,因爲看安裝文件裏面的print還是python2的寫法,如果有小夥伴知道其他原因或者有其他方法的請留言,一起探討苦短的人生!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章