Discuss / Python / Python3 Enum报错

Python3 Enum报错

Topic source

运行如下代码的时候会

from urllib import request

req = request.Request('http://www.douban.com/')
req.add_header('User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
with request.urlopen(req) as f:
    print('Status:', f.status, f.reason)
    for k, v in f.getheaders():
        print('%s: %s' % (k, v))
    print('Data:', f.read().decode('utf-8'))

Python运行与request有关的代码都会报错

ImportError: cannot import name 'IntEnum

Python 环境是3.4.2


  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/urllib/request.py", line 88, in <module>
    import http.client
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/http/client.py", line 69, in <module>
    import email.parser
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/email/parser.py", line 12, in <module>
    from email.feedparser import FeedParser, BytesFeedParser
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/email/feedparser.py", line 27, in <module>
    from email import message
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/email/message.py", line 16, in <module>
    from email import utils
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/email/utils.py", line 29, in <module>
    import socket
  File "/System/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/socket.py", line 51, in <module>
    from enum import IntEnum
ImportError: cannot import name 'IntEnum'

请教如何解决?

廖雪峰

#2 Created at ... [Delete] [Delete and Lock User]

这种情况要检查你自己的当前目录是不是写了个enum.py

啊呜说

#3 Created at ... [Delete] [Delete and Lock User]

我运行了 代码是没有问题的 。我是3.4.3 用的pycham运行的。

bluebiu

#4 Created at ... [Delete] [Delete and Lock User]
[root@vagrant-c5-x86_64 Python-3.5.0]# pip3.5 install fortune
Requirement already satisfied (use --upgrade to upgrade): fortune in /usr/local/lib/python3.5/site-packages/fortune-1.0-py3.5.egg
Requirement already satisfied (use --upgrade to upgrade): grizzled-python>=1.0 in /usr/local/lib/python3.5/site-packages/grizzled_python-1.0.2-py3.5.egg (from fortune)
Collecting enum>=0.4.4 (from grizzled-python>=1.0->fortune)
  Downloading http://pypi.douban.com/packages/source/e/enum/enum-0.4.6.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 3, in <module>
      File "/usr/local/lib/python3.5/site-packages/setuptools/__init__.py", line 12, in <module>
        from setuptools.extension import Extension
      File "/usr/local/lib/python3.5/site-packages/setuptools/extension.py", line 8, in <module>
        from .dist import _get_unpatched
      File "/usr/local/lib/python3.5/site-packages/setuptools/dist.py", line 16, in <module>
        from setuptools.depends import Require
      File "/usr/local/lib/python3.5/site-packages/setuptools/depends.py", line 6, in <module>
        from setuptools import compat
      File "/usr/local/lib/python3.5/site-packages/setuptools/compat.py", line 45, in <module>
        import http.client as httplib
      File "/usr/local/lib/python3.5/http/__init__.py", line 1, in <module>
        from enum import IntEnum
    ImportError: cannot import name 'IntEnum'

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-yrd5skwh/enum

请教~ 我在装fortune时也遇到了,怎么破呢。。。当前目录下没有enum.py阿


  • 1

Reply