Zarządzanie wymaganymi pakietami języka Python za pomocą requirements.txt

Jeśli udostępniasz projekt języka Python innym osobom lub używasz systemu kompilacji do tworzenia aplikacji w języku Python, musisz określić wymagane pakiety zewnętrzne. Jeśli planujesz skopiować projekt do innych lokalizacji, w których trzeba przywrócić środowisko, należy również zdefiniować wymagane pakiety zależne.

Zalecaną metodą określania zewnętrznych zależnych pakietów języka Python jest użycie pliku wymagań (readthedocs.org). Ten plik zawiera listę poleceń pip, które instalują wszystkie wymagane wersje pakietów zależnych dla projektu. Najbardziej typowym poleceniem jest pip freeze > requirements.txt. To polecenie rejestruje bieżącą listę pakietów środowiska w requirements.txt pliku.

Plik wymagań zawiera dokładne wersje wszystkich zainstalowanych pakietów. Możesz użyć plików wymagań, aby zablokować wymagania środowiska. Korzystając z dokładnych wersji pakietów, można łatwo odtworzyć środowisko na innym komputerze. Pliki wymagań obejmują pakiety, nawet jeśli są zainstalowane z zakresem wersji, jako zależność innego pakietu lub z instalatorem innym niż pip.

Wymagania wstępne

Technicznie dowolna nazwa pliku może służyć do śledzenia wymagań. Jednak program Visual Studio zapewnia konkretną obsługę pliku wymagań o nazwie "requirements.txt". Argument można -r <full path to file> użyć podczas instalowania pakietu, aby określić preferowaną nazwę pliku.

Instalowanie zależności wymienionych w requirements.txt

Jeśli załadujesz projekt zawierający requirements.txt plik, możesz zainstalować wszystkie zależności pakietu wymienione w pliku.

  1. W Eksplorator rozwiązań rozwiń projekt, a następnie rozwiń węzeł Środowiska języka Python.

  2. Znajdź węzeł środowiska, dla którego chcesz zainstalować pakiety. Kliknij prawym przyciskiem myszy węzeł i wybierz polecenie Zainstaluj z requirements.txt.

    Zrzut ekranu przedstawiający sposób instalowania pakietów języka Python z pliku tekstowego wymagań w programie Visual Studio 2019.

    Zrzut ekranu przedstawiający sposób instalowania pakietów języka Python z pliku tekstowego wymagań w programie Visual Studio 2022.

  3. Proces instalacji pakietu można monitorować w oknie Dane wyjściowe :

    Zrzut ekranu przedstawiający dane wyjściowe z instalacji pakietów języka Python z pliku tekstowego wymagań.

    Dane wyjściowe zawierają listę wszystkich zainstalowanych wymaganych pakietów wraz z aktualizacjami wymaganymi dla poleceń pip, których dotyczy problem, oraz dostępności nowszych wersji pip.

Instalowanie zależności w środowisku wirtualnym

Możesz również zainstalować zależności pakietów języka Python w istniejącym środowisku wirtualnym.

  1. W Eksplorator rozwiązań rozwiń projekt, a następnie rozwiń węzeł Środowiska języka Python.

  2. Znajdź węzeł środowiska wirtualnego, dla którego chcesz zainstalować pakiety. Kliknij prawym przyciskiem myszy węzeł i wybierz polecenie Zainstaluj z requirements.txt.

Jeśli musisz utworzyć środowisko wirtualne, zobacz Używanie środowisk wirtualnych.

Generowanie pliku requirements.txt

Jeśli wszystkie niezbędne pakiety języka Python dla projektu są już zainstalowane w środowisku, możesz wygenerować requirements.txt plik w programie Visual Studio.

  1. W Eksplorator rozwiązań rozwiń projekt, a następnie rozwiń węzeł Środowiska języka Python.

  2. Znajdź węzeł środowiska, dla którego chcesz wygenerować plik wymagań. Kliknij prawym przyciskiem myszy węzeł i wybierz polecenie Generuj requirements.txt.

    Zrzut ekranu przedstawiający sposób generowania pliku tekstowego wymagań dla zależności pakietów języka Python w programie Visual Studio 2019.

    Zrzut ekranu przedstawiający sposób generowania pliku tekstowego wymagań dla zależności pakietów języka Python w programie Visual Studio 2022.

Odświeżanie lub dodawanie wpisów do istniejącego pliku requirements.txt

requirements.txt Jeśli plik już istnieje, program Visual Studio wyświetli monit z kilkoma opcjami:

Zrzut ekranu przedstawiający monit wyświetlany, gdy plik tekstowy wymagań już istnieje, z opcjami aktualizowania lub dodawania wpisów lub zastępowania pliku.

  • Zamień cały plik: zastąp wszystkie elementy, komentarze i opcje zdefiniowane w requirements.text pliku.
  • Odśwież istniejące wpisy: zaktualizuj specyfikatory wersji w requirements.text pliku, aby odpowiadały aktualnie zainstalowanej wersji.
  • Aktualizowanie i dodawanie wpisów: Odśwież istniejące wymagania w requirements.text pliku i dołącz wszystkie nowe wymagania dotyczące pakietu na końcu pliku.

Program Visual Studio jest uruchamiany pip w celu wykrywania bieżących wymagań dotyczących pakietu dla środowiska, a następnie aktualizuje requirements.txt plik na podstawie wybranej opcji.

Ręczne instalowanie zależności pakietów

Jeśli narzędzie pip nie instaluje zależności pakietu zdefiniowanej w requirements.txt pliku, cała instalacja zakończy się niepowodzeniem.

Istnieją dwie opcje rozwiązania tego problemu:

  • Ręcznie zmodyfikuj plik, requirements.txt aby wykluczyć pakiet, który zakończył się niepowodzeniem, a następnie ponownie uruchom proces instalacji.

  • Użyj opcji polecenia pip, aby odwołać się do instalowanej wersji pakietu.

Aktualizowanie pliku wymagań za pomocą narzędzia pip wheel

Jeśli używasz pip wheel polecenia do kompilowania zależności, możesz dodać --find-links <path> opcję do requirements.txt pliku.

  1. Wywołaj polecenie , pip wheel aby skompilować listę wymaganych zależności:

    pip wheel azure
    

    Dane wyjściowe przedstawiają koła utworzone dla zebranych pakietów:

    Downloading/unpacking azure
        Running setup.py (path:C:\Project\env\build\azure\setup.py) egg_info for package azure
    
    Building wheels for collected packages: azure
        Running setup.py bdist_wheel for azure
        Destination directory: c:\project\wheelhouse
    Successfully built azure
    Cleaning up...
    
  2. find-links Dołącz opcje i no-index wraz z wymaganiami wersji pakietu do plikurequirements.txt:

    type requirements.txt
    --find-links wheelhouse
    --no-index
    azure==0.8.0
    
  3. Uruchom proces instalacji pip ze zaktualizowanym plikiem wymagań:

    pip install -r requirements.txt -v
    

    Dane wyjściowe śledzą postęp procesu instalacji:

    Downloading/unpacking azure==0.8.0 (from -r requirements.txt (line 3))
        Local files found: C:/Project/wheelhouse/azure-0.8.0-py3-none-any.whl
    Installing collected packages: azure
    Successfully installed azure
    Cleaning up...
        Removing temporary dir C:\Project\env\build...