2012-12-14 13 views
21

Już od około miesiąca pytam o Pythona i coś mnie dręczy. Używam zestawu narzędzi python (x, y), który jest dołączony do zgrabnego IDE Spyder. Moje pytanie dotyczy modułu UMD (modułu użytkownika) urządzenia Spyder.Spyder - UMD skasował: moduł

Znalazłem w Internecie moduł grafiki this, który pomaga w prostych skryptach w języku Pythona (o ile rozumiem).

To nie jest jak utknąłem, ale kiedy wykonać kod folowing:

import pylab as p 
import graphics as g 

window = g.GraphWin("tryout", 600, 600) 
window.close() 
print p.sqrt(4) 

wyjście jest:

>>>runfile(r'C:\some\folders\tryout.py', wdir=r'C:\some\folders') 
>>>UMD has deleted: graphics 
>>>2.0 

Linia 1 jest oczywiście O.K. i tak jest linia 3, ale nie dostaję linii 2. Również sprowokowane okno miga i wychodzi z ekranu, tak jak powinno. Linia 2 wydaje się nie wyrządzać żadnej szkody i mogę bez problemu powtórzyć plik tyle razy, ile będę chciał, ale chcę wiedzieć, skąd pochodzi.

AFAIK UMD zmusza interpreter do przeładowania modułu za każdym razem, gdy skrypt jest uruchamiany. Czy wyświetlana wiadomość oznacza, że ​​"to" usunęło odniesienia do modułu, ponieważ nie jest już używane, czy jest to coś innego? Czy to znaczy, że coś jest nie tak i czy "zrani" mój kod, czy powinienem dodać więcej później?

Uwaga: pierwsze pytanie, więc proszę skomentuj bzdury, które pomogą mi poprawić umiejętności zadawania pytań.

EDYCJA: Próbowałem przesuwać się wzdłuż linii testowej print p.sqrt(4) i odkryłem, że nie ma znaczenia, gdzie ją umieściłem. Jeśli jego pierwsza linia po importowania modułów, to nadal raisses wiadomość przed pokazaniem sqrt (4)

Odpowiedz

43

Krótka odpowiedź:

Może usunięte nie jest najlepsze słowo w wiadomości można wymienić. Powinno być ponownie załadowane , co tak naprawdę robi UMD, a ponieważ jest mniej dezorientujące. Wypełnię problem w naszym narzędziu do śledzenia problemów.

Długa odpowiedź:

UMD przeładowuje nie tylko skrypt, ale również wszystkie lokalne moduły to zależy. Przez lokalny mam na myśli moduły spoza twojej instalacji Pythona i nad którymi masz uprawnienia do pisania.

Pomysł polega na tym, że obok skryptu możesz stworzyć bibliotekę funkcji pomocniczych, które z nią współpracują. Tak więc prawdopodobnie również chcesz przeładować tę bibliotekę, aby wszelkie zmiany były odzwierciedlane w czasie wykonywania.

wiem to nie jest twoja sprawa, więc jeśli chcesz usunąć tę wiadomość, można przejść do:

Narzędzia>Preferencje>konsole>Ustawienia zaawansowane>Moduł obsługi Deleter

i wyłączyć opcję

Pokaż re lista załadowanych modułów

+0

Dzięki za wyjaśnienie ... =) – Kraay89

+0

Przydatne, drukuje bardzo długą listę przy użyciu Mayavi na przykład, ponieważ ta "Pokaż listę modułów ponownie załadowanych" jest bardziej do debugowania, czy nie powinna być wyłączona domyślnie? – dashesy

+2

Nie sądzę, że jest to do debugowania; chodzi bardziej o informowanie użytkownika, jakie moduły zostały przeładowane przed kolejną realizacją. W twoim przypadku, ponieważ domyślam się, że Mayavi jest zainstalowany lokalnie, możesz dezaktywować wiadomość, dodając go do listy wykluczonych modułów. –