2015-05-09 19 views
7

Poniżej znajduje się kod. Po uruchomieniu otrzymałem komunikat o błędzie informujący, że "exit nazwy nie jest zdefiniowany". Czy ktoś mógłby mi powiedzieć, dlaczego? Bardzo dziękuję za poświęcony czas i uwagę.exit nazwy nie jest zdefiniowany w pythoniu

if len(sys.argv) == 4: 
    ### do something 
    pass 
else: 
    print 
    "usage: #### something here" 
    exit(-1) 
+0

Po prostu zaimportuj sys, w ten sposób: z sys import exit; import sys – felipsmartins

+3

używasz 'sys.argv', więc wyraźnie, zaimportowałeś' sys'. Po prostu wykonaj 'sys.exit' – inspectorG4dget

+0

Szybkie pytanie. Uruchomiłem go wcześniej z super komputerem i działa. Ale dzisiaj uruchamiam go na moim komputerze z koroną, to daje mi taki błąd. Czy ktoś wie, dlaczego? – study

Odpowiedz

5

Trzeba import sys pierwszy od exit (i argv) jest w tym module.

Błąd pojawia kiedy uruchomić kod jest:

File "", line 1, in NameError: name 'sys' is not defined

który narzeka sys.argv zamiast exit. Ale w obu przypadkach rozwiązanie - import sys jest takie samo.

+0

W rzeczywistości nawet bez 'import sys' polecenie' exit' działa w terminalu. Ale kiedy uruchamiam ten sam skrypt z notatnika Jupytera, potrzebuję importu. Nie pewny dlaczego? –

+0

Nie mogę uzyskać wyjścia do pracy w dowolnym miejscu w uruchomionym programie Python3, nawet jeśli importuję sys. – rjurney

+0

Jak wygląda twój kod? – khampson

1

Jeśli zaimportowano sys, użyj sys.exit(0) - zmień 0 z dowolnym kodem wyniku, z którym chcesz wyjść. Miałem ten sam problem, który przed kompilacją podczas uruchamiania z .py plik exit(0) działał dobrze, ale po kompilacji do .exe dało mi błąd. Musiałem zmienić exit(0) na sys.exit(0) i zadziałało.

Powiązane problemy