Python 3.6.1 的单元测试错误

Error in unittest of Python 3.6.1

您好,我已经编写了下面的基本 python 单元测试代码:

import unittest

class Phonebooktest(unittest.TestCase):

   def test_create_phonebook():
       print("welcome to python")



if __name__ == '__main__':
    unittest.main()`

我收到一个错误:

25
/ 2
10>>2 2
Traceback (most recent call last):
  File "test_phone_book.py", line 1, in <module>
    import unittest
  File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python36\lib\unittest\__init__.py", line 58, in <module>
    from .result import TestResult
  File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python36\lib\unittest\result.py", line 5, in <module>
    import traceback
  File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python36\lib\traceback.py", line 3, in <module>
    import collections
  File "C:\Users\XXXXX\AppData\Local\Programs\Python\Python36\lib\collections\__init__.py", line 26, in <module>
    from operator import itemgetter as _itemgetter, eq as _eq
ImportError: cannot import name 'itemgetter'

有人请帮我解决这个错误。

很可能您的目录中有一个名为 operator.py 的文件。不幸的是,该名称与 Python 的标准库冲突,后者有一个 operator 模块。

其实看最后两行,其中一行写着:

from operator import itemgetter as _itemgetter, eq as _eq
    ImportError: cannot import name 'itemgetter'

这表明它尝试从 operator 获取 itemgetter,但由于您的工作目录中有一个 operator.py 文件,它会尝试从该文件导入 itemgetter文件,而不是 Python 的标准库。

尝试将您的 operator.py 重命名为其他名称,看看会发生什么。