2017-08-03 6 views
0

Hallo, ich habe grundlegenden Python Unittest Code unten geschrieben:Fehler bei Unittest von Python 3.6.1

import unittest 

class Phonebooktest(unittest.TestCase): 

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



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

Ich erhalte eine Fehlermeldung:

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' 

ich bitte jemand helfen, diese Fehler zu beheben.

+0

Gibt es irgendwelche Dateien in Directorie, in denen sich 'test_phone_book.py' befindet,' operator.py'? –

+0

Ja, es gibt die Datei operator.py. Ich entferne nur das und versuchte es funktioniert. Kann ich wissen, warum das passiert ist? – jaibalaji

+0

Mögliches Duplikat von [Import des installierten Pakets aus dem Skript löst "AttributeError: Modul hat kein Attribut" oder "ImportError: Name kann nicht importiert werden"] (https://stackoverflow.com/questions/36250353/importing-installed-package-from-script -raises-attributeerror-modul-has-no-at) –

Antwort

1

Wahrscheinlich haben Sie eine Datei mit dem Namen operator.py in Ihrem Verzeichnis. Leider steht dieser Name in Konflikt mit Pythons Standardbibliothek, die ein operator Modul hat.

In der Tat, Blick auf die letzten beiden Zeilen, von denen sagt:

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

Was es itemgetter von operator zu bekommen schlägt versucht, aber da Sie eine operator.py Datei in Ihrem Arbeitsverzeichnis haben, versucht um itemgetter aus dieser Datei zu importieren, nicht Pythons Standardbibliothek.

Versuchen Sie, Ihre operator.py zu etwas anderem umzubenennen und zu sehen, was passiert.

+1

vielen Dank für die Informationen. :) – jaibalaji