Jak używać SYS.ścieżka.Dodatek w Python

Jak używać SYS.ścieżka.Dodatek w Python

Sys.Ścieżka to lista katalogów, w których interpreter Python szuka modułów. Pamiętaj, to jest lista! Gdy moduł zostanie zgłoszony w pliku projektu, przeszuka każdy z katalogów na liście. Jeśli moduł znajduje się w jednym z tych katalogów, wszystko idzie dobrze, a Twój projekt jest pomyślnie renderowany. Jeśli jednak moduł nie znajduje się w żadnym z wymienionych katalot. W tym samouczku dowiemy się, jak korzystać z SYS.ścieżka.append () w Python.

Wymień bieżącą ścieżkę

Deklarując następujące informacje, możemy sprawdzić obecną ścieżkę Pythona:

Import Sys
z Pprint Import Pprint
pprint (sys.ścieżka)

Tutaj 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'
  1. Na komputerze Linux otwórz terminal i przejdź do folderu zawierającego .Bashrc.
  2. Nano .Bashrc
  3. Dodaj następujące na końcu .Plik bashrc: Eksport pythonpath = '/home/kalyani/katalog1' '

Tutaj możesz dodać ścieżkę, którą chcesz.

  1. Zamknij terminal i otwórz nowy terminal
  2. Teraz spróbuj wykonać swój program. W moim przypadku będzie to następujące:
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!