Wymień bieżącą ścieżkę
Deklarując następujące informacje, możemy sprawdzić obecną ścieżkę Pythona:
Import SysTutaj moduł pprint jest po prostu używany do sprawienia, by wszystko wyglądało ładnie, więc możesz zignorować tę część i skoncentrować się na reszcie. Staramy się tu zrobić, to wydrukować sys.ścieżka.
To jest to, co otrzymujemy:
To, co zauważasz tutaj, jest to lista. Zgodnie z listą najpierw przyjrzy się obecnego katalogu roboczego, a następnie w innych katalogach jeden po drugim. Obecny katalog roboczy to katalog, w którym znaleziono główny skrypt Python - ten wykonany -. Ponadto oznacza to również, że lista ta można modyfikować lub edytować.
Dodanie ścieżki
Sys.ścieżka.Metoda append () jest używana specjalnie w celu dodania ścieżki do istniejących.
Załóżmy, że teraz mam dwa odrębne pliki: Main.PY i File1.py. Główny.PY jest głównym plikiem, a my spróbujemy zaimportować Plik1.PY (moduł, który napisaliśmy).
główny.py | plik 1.py |
---|---|
Importuj plik 1 wydrukuj (plik 1.sekret) | Secret = „To jest tajne zdanie” |
Ponieważ plik 1.PY lub nasz moduł znajduje się w katalogu roboczym, powinieneś być w stanie z powodzeniem wydrukować tajne zdanie. Dzieje się tak, ponieważ gdy interpreter Python przeszuka żądanego modułu, najpierw będzie wyszukiwał w katalogu roboczym i ponieważ nasz moduł o nazwie File1 znajduje się w katalogu roboczym, automatycznie wydrukuje nasze tajne zdanie.
Załóżmy teraz, że tworzę katalog w moim działającym katalogu o nazwie „Directory1” i umieszczam w nim mój moduł o nazwie File1.
Teraz w pliku modułu 1 znajduje się tajne zdanie, które próbujemy wydrukować. W takim przypadku nie wydrukuje tajnej frazy. Dlaczego? Ponieważ tłumacz nie patrzy w „Directory1” dla żadnych modułów. Innymi słowy, obecny katalog roboczy jest członkiem listy SYS.ścieżka, ale „Directory1” nie jest członkiem tej listy. Tak więc wynikowy błąd jest błąd modulenotfound - nie mógł znaleźć ani zlokalizować modułu o nazwie File1.
Aby uniknąć tego problemu, musisz powiedzieć interpreterowi Python, gdzie szukać pliku modułu 1. Tutaj sys.ścieżka.Metoda append () pojawia się.
Sys.ścieżka.Metoda append () służy do dołączenia ścieżki, którą chcemy do istniejącej listy.
W systemie Linux:
Sys.ścieżka.Dodatek („/ścieżka/do/dir”)W systemie systemu Windows napiszesz:
Sys.ścieżka.append („C: \\ ścieżka \\ do \\ dir”)Pamiętaj, że nie można dodać żadnego podanego pliku do SYS.ścieżka, zamiast tego możesz dodawać katalogi, a następnie zaimportować żądane pliki.
Przykład 1
Wypróbujmy więc poprzednią operację (gdzie moduł Plik 1 znajduje się w Directory1), ale tym razem dołączymy ścieżkę do modułu Plik 1 do SYS.ścieżka za pomocą SYS.ścieżka.Metoda append ().
główny.py | plik 1.py |
---|---|
Import Sys Sys.ścieżka.append ('c: \\ Users \\ nigdy \\ pycharmprojects \\ Pythonproject1 \\ Directory1 ') Importuj plik 1 wydrukuj (plik 1.sekret) | Secret = „To jest tajne zdanie” |
Kiedy dołączamy ścieżkę za pomocą SYS.ścieżka.Metoda append (), najpierw dołączamy lokalizację modułu do ścieżki, a następnie ją importuje. Jeśli wykonano w taki sposób, tłumacz Python powinien być w stanie zlokalizować żądany moduł, a tym samym odzyskać tajną zmienną.
Wyjście poprzedniej operacji jest następujące:
Przykład nr 2
Weźmy kolejny przykład, tym razem na maszynie Linux. Załóżmy, że mamy jeden plik - Main.py.
główny.py |
---|
Import Sys z Pprint Import Pprint pprint (sys.ścieżka) |
Tutaj, Sys.Ścieżka [0] to „/Home/kalyani”, ponieważ tam jest główny.PY znajduje się.
Teraz zmodyfikujmy skrypt, używając SYS.ścieżka.Metoda append (). Użyjmy metody, aby dołączyć określoną ścieżkę ('/home/kalyani/katalog1') do SYS.ścieżka.
główny.py |
---|
Import Sys z Pprint Import Pprint Sys.ścieżka.append ('/home/kalyani/katalog1') pprint (sys.ścieżka) |
Więc sys.ścieżka.Metoda append () dołączyła ścieżkę do końca istniejącej listy! Tutaj należy również pamiętać, że dołączenie odbywa się na końcu listy nie na początku.
Pythonpath
Jest jeden mały problem z tym, co właśnie zrobiliśmy, i to to, że nie na stałe nie umieściliśmy tej lokalizacji na SYS.Lista ścieżek. Sys.ścieżka.Metoda append () służy do tymczasowego dodawania ścieżki i jako taka, ta ścieżka byłaby ważna na przykład dla sesji. Jeśli chcesz na stałe zmienić sys.Lista ścieżek, a następnie możemy użyć PythonPath, aby dodać ścieżkę do listy. Od Sys.Ścieżka również patrzy na Pythonpath, wymienione lokalizacje zostaną następnie uwzględnione na liście ścieżek.
Na Linux:
Eksport Pythonpath = '/ścieżka/do/dir'Tutaj możesz dodać ścieżkę, którą chcesz.
główny.py |
---|
Import Sys z Pprint Import Pprint pprint (sys.ścieżka) |
Pisząc złożone programy w Python, w końcu dodamy moduły stron trzecich, a nawet lepiej, stwórz własne moduły. We wszystkich przypadkach nie możemy zachować każdego pliku Pythona, który tworzymy w jednym katalogu, możemy chcieć użyć wielu katalogów, aby odpowiednio sklasyfikować nasze pliki. Problem polega jednak na tym, że możemy potrzebować zaimportować nasze utworzone moduły w lewo i prawo. W takich przypadkach, jeśli chcemy zapobiec błędowi modulenotfound, możemy dodać lokalizację katalogu - i pamiętać, że musi to być katalog, a nie plik - do SYS.ścieżka za pomocą SYS.ścieżka.Metoda append ().
Szczęśliwe kodowanie!