Dela via


Publicera och ladda ned Python-paket med Azure Artifacts

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022 | Azure DevOps Server 2020

Med Hjälp av Azure Artifacts kan du publicera och ladda ned paket från feeds och offentliga register, till exempel PyPi. Den här snabbstarten vägleder dig genom att skapa ett flöde, konfigurera projektet och hantera Python-paket i Azure Artifacts-flödet.

Förutsättningar

Produkt Krav
Azure DevOps – En organisation i Azure DevOps .
– Ett Azure DevOps-projekt.
– Ladda ned och installera Python-.

Hämta koden

  1. Om du inte har ett eget Python-projekt kan du använda följande Python-exempelprojekt. Annars kan du gå vidare till nästa avsnitt:

    https://github.com/Azure-Samples/azure-stack-hub-flask-hello-world
    
  2. Om du vill skapa hjul- och källdistributionen kör du följande kommandon i projektkatalogen:

    pip install --upgrade build
    python -m build
    
  3. Om Python-projektet har en setup.py fil kan du även skapa ditt paket med hjälp av:

    python setup.py sdist bdist_wheel
    

Skapa en feed

  1. Logga in på din Azure DevOps-organisation och gå till projektet.

  2. Välj Artefakteroch välj sedan Skapa flöde.

  3. Ange ett Namn för feeden, välj alternativet Synlighet som definierar vem som kan visa dina paket, kontrollera Ta med paket från vanliga offentliga källor om du vill inkludera paket från källor som nuget.org eller npmjs.comoch för Omfångavgör du om flödet ska begränsas till projektet eller hela organisationen.

  4. Välj Skapa när du är klar.

    Skärmbild som visar val för att skapa en ny feed i Azure DevOps Services.

  1. Logga in på Azure DevOps-servern och gå sedan till projektet.

  2. Välj Artefakteroch välj sedan Skapa flöde.

  3. Ange ett Namn för feeden, välj alternativet Synlighet som definierar vem som kan visa dina paket, kontrollera Ta med paket från vanliga offentliga källor om du vill inkludera paket från källor som nuget.org eller npmjs.comoch för Omfångavgör du om flödet ska begränsas till projektet eller hela organisationen.

  1. Välj Skapa när du är klar.

    Skärmbild som visar val för att skapa en ny feed i Azure DevOps 2022.

  1. Välj Skapa när du är klar.

    Skärmbild som visar val för att skapa en ny feed i Azure DevOps 2020.

Notera

Som standard tilldelas byggtjänsten för projektet (till exempel projectName Build Service (orgName)) rollen Feed och Upstream Reader (Kollaboratör) när en ny feed skapas.

Ansluta till din feed

  1. Logga in på din Azure DevOps-organisation och navigera sedan till projektet.

  2. Välj Artifacts, välj din feed i rullgardinsmenyn och välj sedan Anslut till feed.

  3. I avsnittet Python väljer du twine.

  4. Om det här är första gången du använder Azure Artifacts med twine väljer du Hämta verktygen och följer anvisningarna för att ladda ned Python och installera Twine och artefakternas nyckelring.

  5. Skapa en pypirc-fil i hemkatalogen och klistra in kodfragmentet som anges i avsnittet Projektkonfiguration . Filen bör se ut så här:

    [distutils]
    Index-servers =
        FEED_NAME
    
    [FEED_NAME]
    Repository = https://pkgs.dev.azure.com/ORGANIZATION_NAME/PROJECT_NAME/_packaging/FEED_NAME/pypi/upload/
    

Notera

Om din .pypirc-fil redan innehåller autentiseringsuppgifter för det offentliga PyPI-indexet rekommenderar vi att du tar bort [pypi] avsnittet för att undvika att publicera privata paket av misstag till PyPI.

Publicera paket i feeden

  1. I projektkatalogen kör du följande kommando för att skapa käll- och hjuldistributioner:

    python setup.py sdist bdist_wheel
    
    
  2. Om du vill publicera paketet använder du kommandot nedan. Se till att använda flaggan -r FEED_NAME för att undvika att publicera till PyPI av misstag:

    twine upload -r <FEED_NAME> dist/*
    

Installera paket från feeden

  1. Om du vill installera paket från feeden kör du följande kommando i projektkatalogen:

    pip install
    
  2. Om du vill installera ett specifikt paket ersätter du platshållaren med paketnamnet från feeden:

    pip install <PACKAGE_NAME>