Python: brak podpowiedzi po kropce, control+spacja, TAB. Intellisense nie działa

11-lut-2019

Dobre środowisko programistyczne w naszych czasach powinno „myśleć” razem z programistą. Ktokolwiek pracował w edytorze, który podpowiada ciąg dalszy nazw zmiennych, funkcji itp. ten wie o czym mówię. Dramat zaczyna się wtedy, kiedy te metody zawiodą!

I tak w Python IDLE zdarza się, że TAB nie działa

Tabulator działa, ale jego użycie może być trochę „tricky”. Zrób tak:

-napisz

tekst='Friday'

lub coś innego co spowoduje powstanie zmiennej tekstowej.

-zapisz plik

-uruchom go chociaż raz. Teraz w pamięci Pythona jest już informacja, że text jest zmienną typu tekstowego

-teraz wróć do edytora i napisz nazwę zmiennej i kropkę

text.

-teraz naciśnij tabulator. Powinny się pokazać funkcje specyficzne dla typu string

To jest super niewygodne kiedy chcesz to zrobić dla jednej zmiennej w banalnie prostym skrypcie. Ale kiedy piszesz dłuuuugi skrypt i uruchamiasz go dziesiątki razy, to Python jest świadomy wszystkich zmiennych i ładnie podpowiada.

Gdyby mimo to podpowiadanie nie działało, to jest jeszcze prawdopodobne, że coś poszło nie tak z intalacją i brakuje rozszerzenia odpowiadającego za podpowiadanie. Po wejściu do ustawień IDLE na zakładce Extensions można sprawdzić obecność rozszerzenia AutoComplete i ewentualnie sprawdzić czy jest włączone. Podobno pomaga reinstalacja pythona (zwróć uwagę na zaznaczenie [ ] Add Python to PATH)

Inne możliwe przyczyny takiego zachowania:

  • katalog, w którym jest wykonana instalacja, albo katalog ze skryptami, albo nazwa użytkownika zawierają polskie literki np. ą, ś, ł itp.
  • jeden z wcześniej utworzonych skryptów  otrzymał nazwę, która jest używana przez wymagany przez IDLE moduł pythona. Staraj się unikać nazw, co do których można mieć podejrzenie, że są one już wykorzystywane w Pythonie, np. time, random, int itp. Tworząc własne skrypty możesz np. stosować nietypowe  nazwy w rodzaju measure_time.py, generate_randoms.py, test_int.py itd.

 

 

Komentarze są wyłączone

Autor: Rafał Kraik