Do swoich wpisów dorzucam czasem autorskie skrypty Pythona, które pozwalają Wam sprawdzić pewne rzeczy na własną rękę.

Podstawy instalacji Pythona i odpalania skryptów pokazałem w podstawowym samouczku.

Przyznam, że praca z Pythonem w IDLE może być na początku toporna. Za każdym razem musimy kopiować skrypty. Żeby je otworzyć, musimy najpierw włączać edytor, a potem nawigować do odpowiedniego pliku.

Na szczęście jest kilka sposobów na znaczne ułatwienie pracy. Będziemy w stanie łatwo otwierać skrypty, wzywać je z dowolnego miejsca, uruchamiać prostymi kombinacjami klawiszy.
Co więcej, to całkiem bezpieczne i nie wymaga dotykania żadnych funkcji systemu. Wystarczy stworzyć parę plików i folderów.

Przekonałem Was? Jeśli tak, to zapraszam do lektury! Porady ułożyłem w kolejności od najprzydatniejszych do całkowicie opcjonalnych.

Jeśli chcecie sprawdzać wszystko na przykładzie, to możecie pobrać mój skrypt witaj.py.

0. Znajdowanie folderu Pythona

Zanim zaczniemy ułatwiać sobie życie, trzeba ustalić, gdzie Python przechowuje różne swoje moduły.

Sposobów na to jest mnóstwo – póki efektem naszych działań będzie odnalezienie folderu Pythona, to każdy z nich jest dobry.

Zademonstruję tu parę z nich, używając screenów z Windowsa jako przykładów.

Wyklikanie sobie drogi

Sposób graficzny na przykładzie Windowsa (na innych systemach niestety będzie inaczej). Powinien działać niezależnie od tego, w jakim folderze zainstalujemy Pythona.

Otwieramy menu Start (ikona w lewym dolnym rogu).

Przewijając listę po lewej, znajdujemy tam zakładkę Python. Rozwijamy ją, wyświetlając m.in. IDLE.
Klikamy tę opcję prawym przyciskiem myszy, najeżdżamy na opcję Więcej, a potem klikamy Otwórz lokalizację pliku:

Włączy się okno Eksploratora Windows z kilkoma skrótami do różnych elementów Pythona. Klikamy dowolny z nich prawym przyciskiem i znów wybieramy Otwórz lokalizację pliku.

Powinien nam się otworzyć folder główny Pythona, zawierający między innymi takie rzeczy:

Spoiler: później skorzystamy z podfolderów Lib, libs oraz Scripts.

Teraz fajna sztuczka, o której sam wcześniej nie wiedziałem. Kliknijcie w puste pole po prawej stronie górnego paska (ale przed strzałką):

Górny pasek Eksploratora. Puste miejsce po prawej stronie od ostatniego elementu otoczono czerwoną ramką. Jest w nią wpisane słowo 'KLIK'.

W ten sposób pełna ścieżka do folderu zaznaczy się Wam na niebiesko, w formie tekstu. Wystarczy jedno Ctrl+C, żeby ją skopiować. Przyda się później w paru miejscach!

Zapytanie przez IDLE

Sposób bardziej „hakerski”, bo wymaga skopiowania całych dwóch linijek kodu!
Zaleta: uniwersalny i powinien zadziałać na wszystkich systemach (Windows, Linux, MacOS…).

Otwieramy IDLE w taki sposób, w jaki tylko chcemy. Powinien się włączyć w trybie interaktywnym. W ostatniej linijce, za trzema strzałkami (>>>), możemy wpisywać swoje komendy.

Wpisujemy (albo kopiujemy i wklejamy):

import sys

Potwierdzamy, naciskając Enter. Potem wpisujemy:

for p in sys.path: print(p)

To pętla, więc tym razem musimy wcisnąć Enter dwa razy.
Wyświetli się lista różnych folderów Pythona, coś w tym stylu:

Główny folder Pythona to najkrótsza ścieżka, kończąca się słowem Python i numerem wersji (zaznaczyłem na obrazku). Możemy ją skopiować.

1. Ustawienie IDLE jako programu otwierającego skrypty

Pierwsze kroki z Pythonem na Windowsie mogą być nieintuicyjne. Mówię to jako wielki fan tego języka.

Zainstalowaliśmy Pythona. Mamy jakiś skrypt. Więc pewnie wystarczy go dwa razy kliknąć, prawda?
Ale jeśli tak zrobimy, to zwykle na krótko zamigocze czarne okienko. Po czym zniknie.
Jeśli mamy szczęście, to program zrobił swoje. Ale mógł też wyświetlić się jakiś błąd. A okno znika za szybko, żeby go odczytać.

Dlatego lepiej uruchamiać skrypty choćby przez IDLE, domyślny edytor Pythona. Ale w tym celu musimy najpierw włączyć IDLE, a dopiero potem wybrać Otwórz... i wyklikać sobie drogę do naszego skryptu.

Jeśli pobieracie tylko parę skryptów raz na ruski rok (np. ode mnie), to taka klikanina jest do przyjęcia. Ale jeśli musicie otwierać je częściej, to staje się to uciążliwe.

Ale mam dobrą wiadomość – można łatwo sprawić, że dwukrotne kliknięcie na każdym pliku py od razu go otworzy w IDLE. +100 do komfortu pracy.

To do dzieła! Klikamy prawym przyciskiem na jakikolwiek plik py i wybieramy Otwórz za pomocą > Wybierz inną aplikację.

Klikamy Więcej aplikacji, żeby rozwinąć listę. Przewijamy na sam dół.
Tam najpierw zaznaczamy opcję, żeby zawsze otwierać pliki w taki sposób. A potem klikamy Wyszukaj inną aplikację...:

Włączy się okno wyboru pliku. Jeśli nie chcemy klikać przez foldery, przyda nam się tutaj ścieżka do folderu Pythona, skopiowana w poprzednim punkcie.

Żeby ją wkleić, klikamy po prawej stronie paska, żeby przełączył się w tryb tekstu:

Naciskamy Ctrl+V, wklejając tam nasz adres do folderu Pythona. Potwierdzamy Enterem.

W folderze Pythona, do którego trafimy, interesuje nas podfolder Lib, a w nim idlelib.
Otwieramy go, a z listy plików wybieramy idle.bat:

Potwierdzamy nasz wybór:

I zrobione! Od teraz, przeglądając pliki w Eksploratorze, możemy po prostu dwukrotnie klikać skrypty Pythona, żeby wyświetlać je w IDLE’u.

2. Uruchamianie skryptów z dowolnego folderu

Do tej pory musieliśmy kopiować skrypty do tego samego folderu, w którym chcemy ich użyć. Na dłuższą metę to niepraktyczne, więc mam kolejny ułatwiacz życia. Sprawimy, żeby dało się trzymać skrypty w jednym miejscu i uruchamiać przez samo wpisanie ich nazwy.

Żeby to zrobić, trzeba sprawić, żeby Python zawsze „widział” nasz skrypt. Na szczęście to nic trudnego, wystarczy go włożyć do jednego konkretnego folderu.

Otwieramy główny folder Pythona i wybieramy w nim podfolder libs, a potem site_packages.
Uwaga! Zwracajcie uwagę na nazwy. W folderze macie zarówno libs, jak też Lib.

Mój folder site_packages wygląda tak (praktycznie zaraz po nowej instalacji, dodałem tylko jeden moduł):

Wnętrze folderu site packages.

To jeden z folderów, w których Python szuka swoich skryptów. Możemy wziąć nasz skrypt witaj.py – albo wszelkie inne – i po prostu je tutaj dorzucić.

Co nam to dało? Od teraz nasz skrypt jest dostępny z każdego miejsca w systemie!
Możemy go na przykład importować, wpisując w IDLE jego nazwę bez końcówki .py – w naszym przypadku import witaj.
W jakim folderze byśmy nie byli, odpali nam nasz kod:

Konsola z IDLE z wpisaną komendą 'import witaj' i wyświetlonymi poniżej słowami 'Witaj po ciemnej stronie'.

Jeśli chcemy wykorzystać w pełni dostępność skryptu z każdego miejsca, to warto odejść od IDLE’a na rzecz PowerShella.
Ten drugi jest silniej zintegrowany z Windowsem i można go szybko uruchomić w każdym folderze. Nawet jeśli nie ma tam żadnych skryptów Pythona.

Jak wygląda praca z PowerShellem?

  • Uruchamiamy domyślny Eksplorator Plików.
  • Przechodzimy do dowolnego folderu;
  • Wybieramy z górnego paska Plik, a następnie Otwórz program Windows PowerShell.

I tyle! Pojawi się okno PowerShella, a folderem aktywnym będzie ten, w którym byliśmy, klikając w opcję. Wpisujemy:

python -m witaj

Pamiętajmy o -m, bo bez tego nie zadziała. A jeśli działa, to wyświetli nasz kod:

PowerShell z wpisaną powyższą komendą i wyświetlonymi pod nią słowami 'Witaj po ciemnej stronie'.

W ten sposób, po prostu dorzucając skrypty do konkretnego folderu, mamy do nich szybki dostęp. Możemy pozostać przy domyślnym pythonowym site_packages, i jedynie przypiąć gdzieś skrót do tego folderu.

Ale możemy też wydzielić osobny folder na swoje pythonowe skrypty. Pokażę to w kolejnym kroku.

3. Stworzenie własnego folderu na skrypty

Wrzucanie wszystkiego do folderu site_packages ma pewną wadę – nasze autorskie skrypty są wymieszane z tymi pobieranymi z zewnątrz. Łatwo o bałagan.

Co by było, gdybyśmy chcieli przenieść swoje skrypty na inny komputer? Musielibyśmy ich specjalnie wypatrywać. Niedobrze.
A gdybyśmy po prostu brali cały folder site_packages i go kopiowali z jednej instalacji Pythona do drugiej? Też źle. Niektóre większe moduły by mogły nie działać, bo potrzebują też innych rzeczy.

Są rozwiązania prowizoryczne, takie jak wyróżnianie swoich skryptów nietypowymi nazwami (np. dawanie inicjałów na początku).
Ale można też wydzielić na nie osobny folder. Dzięki temu będzie nam łatwiej je znaleźć, zmieniać i porządkować. Zróbmy to!

Najpierw tworzymy nowy folder, gdzie tylko chcemy – u mnie C:\Skrypty. Kopiujemy ścieżkę do tego folderu (np. sposobem z poprzednich punktów).

Teraz trzeba dać znać Pythonowi, że ma patrzeć do naszego folderu. Przechodzimy do site_packages i tworzymy tam nowy plik tekstowy. O dowolnej nazwie, bo liczy się tylko treść i rozszerzenie. Ja go nazwałem moje.txt.

Otwieramy ten plik w Notatniku i wklejamy tam ścieżkę do naszego folderu. Zapisujemy. Zmieniamy rozszerzenie pliku z .txt na .pth. Całość wygląda tak:

Kolaż pokazujący kawałek folderu site_packages z dodanym plikiem pth, a także sam ten plik otwarty w notatniku. Zawiera jedną linijkę, C Skrypty.

Jeden plik, w nim jedna ścieżka. To wszystko.

Sprawdzamy czy działa. Powtarzamy krok z punktu 0, czyli wpisujemy w IDLE linijka po linijce:

import sys
for p in sys.path: print(p)

Tym razem na liście powinno wyświetlić również ścieżkę do naszego folderu:

Zrzut ekranu z IDLE pokazujący konsolę, a w niej wpisaną powyższą komendę. Widać, że pierwszy wyświetlony folder to 'C, skrypty'.

Od teraz możemy do niego dorzucać wszystkie swoje skrypty.

Logo Ciemnej Strony Uwaga

Jeśli ścieżka się nie pojawia, to możecie wyłączyć IDLE i włączyć go ponownie. Być może się nie zaktualizowało od poprzedniej sesji.

4. Szybkie włączanie PowerShella

Do tej pory pokazywałem, że można włączyć PowerShella przez klikanie menu z górnego rogu Eksploratora. Ale jeśli mamy go używać częściej, w różnych folderach, to warto poznać szybsze metody.

(Wielkie dzięki dla tegotego wątku ze StackOverflow).

Przede wszystkim podczas używania Eksploratora można nacisnąć Shift + prawy przycisk myszy na obszarze z listą plików.
Kiedy klikamy z Shiftem, to pokazuje się jedna dodatkowa opcjaUruchom w programie Windows PowerShell.

Wada tej metody? Trzeba uważać, żeby zamiast pustej przestrzeni nie kliknąć jakiegoś pliku, bo pokazałyby się inne opcje. A to może być trudne, jeśli folder jest zapchany plikami.

Poza tym da się jeszcze szybciej! Skrótami klawiszowymi, które niestety zależą od ustawionego języka Windowsa.
W polskiej wersji naciskamy Alt+P+O, w angielskiej Alt+F+O (O jak Open).
Dzięki temu mamy PowerShella w sekundę, w dowolnym folderze!

Logo Ciemnej Strony Porada

Jeśli macie wersję Windowsa w innym języku, to możecie po prostu przytrzymać Alt przez dłuższą chwilę, żeby wyświetliły się litery odpowiadające różnym elementom Eksploratora.
Potem patrzycie, jakie klawisze odpowiadają opcji Plik i otwieraniu PowerShella. To te klawisze musicie nacisnąć w swojej wersji.

Zrzut ekranu z Eksploratora

Z kolei żeby szybko włączyć PowerShella w jego domyślnym miejscu – bez otwierania Eksploratora Plików – naciskamy Przycisk z ikoną Windowsa + X, żeby wyświetlić okno z opcjami. A następnie I (literę podkreśloną w nazwie odpowiadającej PowerShellowi).

Przydaje się to, jeśli chcemy szybko odpalić przez PS skrypt, który robi zawsze to samo, niezależnie od folderów. U mnie jest to na przykład skrypt otwierający w Firefoksie kilka stron z prognozą pogody.

5. Skrócenie komend dzięki plikowi BAT

Wyczerpaliśmy najłatwiejsze zmiany, teraz zrobi się dziwniej.

Niby wszystko jest cudownie, możemy odpalać skrypty z każdego folderu… Ale za każdym razem musimy wpisywać python -m nazwa_skryptu.

To co najmniej 11 znaków ze spacjami, nawet jeśli skrypt będzie miał najkrótszą jednoliterową nazwę. Z czasem może się znudzić!

Czy da się to przyspieszyć jeszcze bardziej? Bez grzebania w systemie i zmieniania czegoś na stałe?

Odpowiedź: tak. Da się zejść do jednego znaku w PowerShellu.
Ale w tym celu trzeba zrobić lekką incepcję i stworzyć skrypt Windowsa odpalający skrypt Pythona.

Okazuje się, że Windows w tzw. zmiennej PATH przechowuje listę folderów, do których ma szybki dostęp. To tam trzeba się wprosić.
Mam dobrą wiadomość: nie musimy w niczym grzebać, Python sam podczas instalacji dodaje do PATH kilka folderów. Proponuję dorzucić się do jednego z nich, Scripts.

Logo Ciemnej Strony Porada

Jeśli chcecie się upewnić, że Python dodał folder Scripts do PATH, to wyświetlcie w PowerShellu zawartość PATH. Wpiszcie:

$env:path -split ";"

Przechodzimy zatem do folderu Scripts w głównym folderze Pythona.
Tak jak wcześniej tworzyliśmy dla Pythona plik .pth ze ścieżką do folderu, tak teraz stworzymy plik .bat – skrót do konkretnego skryptu przeznaczony dla PowerShella.

Tworzymy plik o takiej nazwie, jaka nam pasuje, na przykład z.txt (to tę nazwę będziemy wpisywać, żeby odpalić skrypt). Wpisujemy w pliku:

@ECHO OFF
python -m witaj

(Pierwsza linijka jest tu po to, żeby skrypt .bat nie wyświetlał niczego od siebie, a jedynie rzeczy od Pythona.
A druga linijka to dokładnie taka komenda, jaką sami byśmy wpisali, żeby uruchomić skrypt Pythona przez PowerShell).

Całość wygląda tak:

Kolaż z trzech okien Windowsa. U góry widać pełną ścieżkę do folderu Scripts, poniżej jego zawartość z jednym dodanym plikiem 'z.txt'. Na samym dole znajduje się okno pokazujące plik z.txt otwarty w Notatniku, z podanym wyżej tekstem.

Zmieniamy nazwę pliku na z.bat. Od teraz po otwarciu PowerShella dałoby się po prostu nacisnąć zEnter, żeby odpalić nasz skrypt. Jednoliterkowiec! :metal:

Zrzut ekranu z PowerShella pokazujący wpisaną komendę 'z' i wyświetlone pod spodem słowa 'Witaj po ciemnej stronie'.

Gdybyśmy chcieli jeszcze bardziej ułatwić pracę – na przykład uruchamiać coś jednym klawiszem, bez włączania PowerShella – to już by mogło wymagać grzebania w systemie albo instalacji dodatków, takich jak AutoHotKey. Dlatego na tym etapie się zatrzymam.

Logo Ciemnej Strony Porada

Jeśli chcecie, żeby wasze pliki BAT miały bardziej opisowe nazwy zamiast jednoliterkowych, a przy tym chcecie dość szybko je wpisywać, to istnieje przydatna opcja.
Jeśli Wasz plik jest w którymś z folderów z PATH, to po wpisaniu w PowerShellu pierwszych liter nazwy możecie nacisnąć Tab. Wstawi Wam pełną nazwę pliku.
Upewnijcie się tylko, że nazwa Waszego pliku nie koliduje z innymi programami dostępnymi przez PATH. Polecam dać coś mało ogólnego, np. dodać na końcu nazwy swoje inicjały.

Podsumowanie

W tym wpisie przeszliśmy długą drogę. Od świeżaków kopiujących skrypty i żmudnie klikających w okienka, gdy chcą ich użyć…
Aż po „hakierów”, którym wystarczy pięć klawiszy (tu: Alt+P+O, literka, Enter), żeby przeczesać skryptem dowolny folder.

Porada o szybkim otwieraniu skryptów w IDLE powinna przydać się każdemu, w tym moim czytelnikom.
Natomiast te o ułatwianiu pracy mogą pomóc przy codziennych żmudnych zadaniach.

A jeśli nie używacie skryptów? Gorąco zachęcam, żeby je poznać. To jedna z tych rzeczy, które dają kontrolę nad swoją pracą. I sporo radochy, bo w końcu tworzymy je dla własnego pożytku.

Jeśli czujecie się zawaleni powtarzalną robotą, to życzę gorąco, żeby skrypty pomogły Wam odetchnąć. I wydrzeć trochę swojego czasu z rąk lyderów byznesu, którzy naobiecywali klientom cudów i teraz zawalają Was robotą.

A jeśli też darzycie ich antypatią? Zapraszam do czytania moich wpisów :smile:

Logo Ciemnej Strony Dygresja

Moje słowa raczej nic nie zmienią, ale Linux (u mnie: Mint) jest dużo przyjemniejszy w pracy z Pythonem niż Windows.
Nie trzeba specjalnie zmieniać nazw plików, żeby móc je edytować w notatniku.
Nie trzeba szukać IDLE’a po folderach. Jest domyślną opcją do otwierania plików py.
Nie trzeba dopisywać żadnego ECHO OFF. Skrypty Linuxa (.sh, odpowiednik .bat) nie wyświetlają nic od siebie i wystarczy wpisać do nich samą nazwę komendy.
…Zresztą w ogóle nie trzeba plików pośrednich. Wystarczy szybka zmiana, żeby każdy plik (w tym skrypty Pythona) dało się odpalać przez samo wpisanie jego nazwy.