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
重命名为其他名称,看看会发生什么。
您好,我已经编写了下面的基本 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
重命名为其他名称,看看会发生什么。