Redigera

Dela via


Spaceborne-dataanalys med Azure Synapse Analytics

Azure Synapse Analytics
Azure AI services
Azure Computer Vision
Azure Batch
Azure Storage

Den här arkitekturen är utformad för att visa en implementering från slutpunkt till slutpunkt som omfattar extrahering, inläsning, transformering och analys av rymdburna data med hjälp av geospatiala bibliotek och AI-modeller med Azure Synapse Analytics. Den här artikeln visar också hur du integrerar geospatiala specifika Azure Cognitive Services-modeller , AI-modeller från partner, bring-your-own-data och AI-modeller som använder Azure Synapse Analytics. Den avsedda målgruppen för det här dokumentet är användare med mellanliggande kunskapsnivåer när det gäller att arbeta med geospatiala eller rymdburna data.

En implementering av den här arkitekturen är tillgänglig på GitHub.

Apache®, Apache Spark, Spark, Spark-logotypen, Apache Sedona, Apache Incubator, Apache Feather-logotypen och Apache Incubator-projektlogotypen är antingen registrerade varumärken eller varumärken som tillhör Apache Software Foundation i USA och/eller andra länder. Inget godkännande från Apache Software Foundation underförstås av användningen av dessa märken.

Arkitektur

Diagram som visar lösningen för geospatial bearbetningsanalys.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

I följande avsnitt beskrivs stegen i arkitekturen.

Datainsamling

Spaceborne-data hämtas från datakällor som Airbus, NAIP/USDA (via API:et Planetary Computer) och Maxar. Data matas in i Azure Data Lake Storage.

Azure Synapse Analytics tillhandahåller olika pipelines och aktiviteter, till exempel webbaktivitet, dataflödesaktivitet och anpassade aktiviteter, för att ansluta till dessa källor och kopiera data till Data Lake Storage.

Anpassade Azure Synapse-aktiviteter kör din anpassade kodlogik på en Azure Batch-pool med virtuella datorer eller i Docker-kompatibla containrar.

Dataomvandling

Data bearbetas och omvandlas till ett format som analytiker och AI-modeller kan använda. Geospatiala bibliotek, inklusive GDAL, OGR, Rasterio och GeoPandas, är tillgängliga för att utföra omvandlingen.

Azure Synapse Spark-pooler ger möjlighet att konfigurera och använda dessa bibliotek för att utföra datatransformeringar. Du kan också använda anpassade Azure Synapse-aktiviteter som använder Azure Batch-pooler.

En Azure Synapse-notebook-fil är ett webbgränssnitt som du kan använda för att skapa filer som innehåller livekod, visualiseringar och narrativ text. Notebook-filer är en bra plats för att validera idéer, definiera transformeringar och göra snabba experiment för att få insikter från dina data och skapa en pipeline. I exempelkoden används GDAL-biblioteket i en Spark-pool för att utföra datatransformeringar. Mer information finns i exempelkodavsnittet i den här artikeln.

Exempellösningen implementerar den här pipelinen från det här datatransformeringssteget. Exemplet skrivs med antagandet att data kopieras i Data Lake Storage av de datainmatningsmetoder som beskrevs tidigare. Den visar implementeringen av den här pipelinen för rasterdatabearbetning.

Analys och körning av AI-modeller

Azure Synapse Notebook-miljön analyserar och kör AI-modeller.

AI-modeller som utvecklats med tjänster som Cognitive Services Custom Vision-modellen, tränas i sin egen miljö och paketeras som Docker-containrar är tillgängliga i Azure Synapse-miljön.

I Azure Synapse-miljön kan du också köra AI-modeller som är tillgängliga från partner för olika funktioner som objektidentifiering, ändringsidentifiering och markklassificering. Dessa modeller tränas i sin egen miljö och paketeras som Docker-containrar.

Azure Synapse kan köra sådana AI-modeller via en anpassad aktivitet som kör kod i Batch-pooler som körbara filer eller Docker-containrar. Exempellösningen visar hur du kör en Custom Vision AI-modell som en del av en Azure Synapse-pipeline för objektidentifiering över ett specifikt geospatialt område.

Efter analys och visualisering

  • För ytterligare analys och visualisering kan utdata från analys och körning av AI-modeller lagras i Data Lake Storage, datamedvetna databaser som Azure Database for PostgreSQL eller Azure Cosmos DB. Exempellösningen visar hur du transformerar AI-modellutdata och lagrar dem som GeoJSON-data i Data Lake Storage och Azure Database for PostgreSQL. Du kan hämta och köra frågor mot utdata därifrån.
  • För visualisering:
    • Du kan använda licensierade verktyg som ArcGIS Desktop eller verktyg med öppen källkod som QGIS.
    • Du kan använda Power BI för att komma åt GeoJSON från olika datakällor och visualisera GIS-data (Geographic Information System).
    • Du kan använda geospatiala JavaScript-baserade bibliotek på klientsidan för att visualisera data i webbprogram.

Komponenter

Datakällor

Datainsamling

  • Azure Synapse Analytics är en obegränsad analystjänst som sammanför dataintegrering, lagring av företagsdata och stordataanalys. Azure Synapse innehåller samma dataintegreringsmotor och funktioner som Azure Data Factory, så att du kan skapa ETL-pipelines i stor skala utan att lämna Azure Synapse.
  • Azure Data Lake Storage är dedikerat till stordataanalys och bygger på Azure Blob Storage.
  • Med Azure Batch kan du köra och skala ett stort antal batchberäkningsjobb i Azure. Batch-uppgifter kan köras direkt på virtuella datorer (noder) i en Batch-pool, men du kan också konfigurera en Batch-pool för att köra uppgifter i Docker-kompatibla containrar på noderna.
    • En anpassad Azure Synapse-aktivitet kör anpassad kodlogik på en Azure Batch-pool med virtuella datorer eller i Docker-containrar.
  • Azure Key Vault lagrar och styr åtkomsten till hemligheter som token, lösenord och API-nycklar. Key Vault skapar och styr även krypteringsnycklar och hanterar säkerhetscertifikat.

Dataomvandling

Följande geospatiala bibliotek och paket används tillsammans för transformeringar. Dessa bibliotek och paket installeras i en serverlös Spark-pool, som sedan är ansluten till en Azure Synapse-notebook-fil. Information om hur du installerar biblioteken finns i Installera geospatiala paket i en Azure Synapse Spark-pool senare i den här artikeln.

  • Geospatiala bibliotek
    • GDAL är ett bibliotek med verktyg för att manipulera rymdburna data. GDAL fungerar på raster- och vektordatatyper. Det är ett bra verktyg för att veta om du arbetar med spaceborne-data.
    • Rasterio är en modul för rasterbearbetning. Du kan använda den för att läsa och skriva flera olika rasterformat i Python. Rasterio baseras på GDAL. När modulen importeras registrerar Python automatiskt alla kända GDAL-drivrutiner för att läsa format som stöds.
    • GeoPandas är ett projekt med öppen källkod som kan göra det enklare att arbeta med spaceborne-data i Python. GeoPandas utökar de datatyper som används av Pandas för att tillåta rumsliga åtgärder på geometriska typer.
    • Shapely är ett Python-paket för set-theoretic-analys och manipulering av planar-funktioner. Den använder (via Pythons ctypes-modul) funktioner från det allmänt distribuerade GEOS-biblioteket.
    • pyproj utför kartografiska transformeringar. Den konverterar från longitud och latitud till intern kartprojektion x, y-koordinater och vice versa med hjälp av PROJ.
  • Med Azure Batch kan du köra och skala ett stort antal batchberäkningsjobb i Azure.
  • Azure Synapse Notebooks är ett webbgränssnitt för att skapa filer som innehåller livekod, visualiseringar och narrativ text. Du kan lägga till befintliga Azure Synapse-notebook-filer i en Azure Synapse-pipeline med hjälp av notebook-aktiviteten.
  • Apache Spark-poolen ger möjlighet att konfigurera och använda bibliotek för att utföra datatransformeringar. Du kan lägga till befintliga Spark-jobb i en Azure Synapse-pipeline med hjälp av aktiviteten Spark-jobbdefinition.

Analys och AI-modellering

  • Azure Synapse tillhandahåller maskininlärningsfunktioner.
  • Med Azure Batch kan du köra och skala ett stort antal batchberäkningsjobb i Azure. I den här lösningen används Azure Synapse Custom-aktiviteten för att köra Docker-baserade AI-modeller i Azure Batch-pooler.
  • Med Azure Cognitive Services kan du bädda in visioner i dina appar. Du kan använda Custom Vision, en komponent i Cognitive Services, för att anpassa och bädda in toppmodern bildanalys av visuellt innehåll för specifika domäner.
  • Du kan också använda egna AI-modeller och AI-modeller för Microsoft-partner som blackshark.ai.

Länkar efter analys och visualisering

  • Azure Database for PostgreSQL är en fullständigt hanterad relationsdatabastjänst som är utformad för hyperskala-arbetsbelastningar. Den stöder spaceborne-data via PostGIS-tillägget .
  • Azure Cosmos DB stöder indexering och frågekörning av geospatiala punktdata som representeras i GeoJSON.
  • Power BI är ett interaktivt datavisualiseringsverktyg för att skapa rapporter och instrumentpaneler. Du kan få insikter om rymdburna data från Esri ArcGIS Maps.
  • QGIS är ett kostnadsfritt GIS med öppen källkod för att skapa, redigera, visualisera, analysera och publicera geospatial information.
  • ArcGIS Desktop är licensierad produkt som tillhandahålls av Esri. Du kan använda den för att skapa, analysera, hantera och dela geografisk information.

Alternativ

Om du vill köra containerbaserade AI-modeller som du kan anropa från Azure Synapse kan du använda Azure Kubernetes Service, Azure Container Instances eller Azure Container Apps.

Azure Databricks är ett alternativ för att vara värd för en analyspipeline.

Spark i Azure HDInsight är ett alternativ för att använda geospatiala bibliotek i Apache Spark-miljön.

Här följer några alternativa bibliotek och ramverk som du kan använda för spaceborne-databearbetning:

  • Apache Sedona, som tidigare hette GeoSpark, är ett klusterberäkningssystem för bearbetning av storskaliga rumsliga data. Sedona utökar Spark och Spark SQL med out-of-the-box Spatial Resilient Distributed Datasets och SpatialSQL som effektivt läser in, bearbetar och analyserar storskaliga rumsliga data mellan datorer.
  • Dask för Python är ett bibliotek för parallell databehandling som skalar det befintliga Python-ekosystemet.

Information om scenario

Spaceborne-datainsamling blir allt vanligare. För tillämpning av artificiell intelligens är lagrade dataarkiv nödvändiga för maskininlärning. Behovet av att skapa en molnbaserad lösning för rymdburen dataanalys har blivit viktigare för att göra det möjligt för företag och regeringar att driva bättre informerade affärsbeslut och taktiska beslut.

Potentiella användningsfall

Den här lösningen är idealisk för flyg- och flygplansindustrin. Den hanterar följande scenarier:

  • Rasterdatainmatning och bearbetning
  • Objektidentifiering via förtränade AI-modeller
  • Klassificering av landmassor via AI-modeller
  • Övervaka ändringar i miljön via AI-modeller
  • Härledda datauppsättningar från förbearbetade bilduppsättningar
  • Vektorvisualisering/förbrukning i små områden
  • Vektordatafiltrering och kopplingar mellan data

Att tänka på

Dessa överväganden implementerar grundpelarna i Azure Well-Architected Framework, som är en uppsättning vägledande grundsatser som kan användas för att förbättra kvaliteten på en arbetsbelastning. Mer information finns i Microsoft Azure Well-Architected Framework.

Driftsäkerhet

Om du samarbetar med Git för källkontroll kan du använda Synapse Studio för att associera din arbetsyta med en Git-lagringsplats, Azure DevOps eller GitHub. Mer information finns i Källkontroll i Synapse Studio.

  • I en Azure Synapse-arbetsyta flyttar CI/CD alla entiteter från en miljö (utveckling, test, produktion) till en annan miljö.
  • Du kan använda Azure DevOps-versionspipelines och GitHub Actions för att automatisera distributionen av en Azure Synapse-arbetsyta till flera miljöer.

Prestanda

  • Azure Synapse stöder Apache Spark 3.1.2, som är mer högpresterande än dess föregångare.
  • Information om skalning och nodstorlekar för Spark-pooler finns i Spark-pooler i Azure Synapse Analytics.
  • Med Azure Batch kan du skala ut parallellt för transformeringar som skickas i en Anpassad Azure Synapse-aktivitet. Azure Batch har stöd för specialiserade GPU-optimerade VM-storlekar som du kan använda för att köra AI-modeller.

Tillförlitlighet

Tillförlitlighet säkerställer att ditt program kan uppfylla de åtaganden du gör gentemot dina kunder. Mer information finns i Översikt över tillförlitlighetspelare.

Mer information om serviceavtal finns i Azure Synapse SLA.

Säkerhet

Säkerhet ger garantier mot avsiktliga attacker och missbruk av dina värdefulla data och system. Mer information finns i Översikt över säkerhetspelare.

Se de här artiklarna om metodtips för säkerhet:

Kostnadsoptimering

Kostnadsoptimering handlar om att titta på sätt att minska onödiga utgifter och förbättra drifteffektiviteten. Mer information finns i Översikt över kostnadsoptimeringspelare.

Dessa resurser innehåller information om prissättning och kostnadsoptimering:

Kommentar

Priser och licensvillkor för partner-AI-modeller finns i partnerns dokumentation.

Distribuera det här scenariot

Det finns en Bicep-distribution av exempellösningen. Information om hur du kommer igång med den här distributionen finns i de här anvisningarna.

Diagram som visar arkitekturen för den distribuerade exempellösningen.

Ladda ned en Visio-fil med den här arkitekturen.

Begränsningar

Den här arkitekturen visar en geoprocessnings- och analyslösning från slutpunkt till slutpunkt som använder Azure Synapse. Den här exempelimplementeringen är avsedd för ett litet till medelstort intresseområde och begränsad samtidig geobearbetning av rasterdata.

Exempelkod

Följande instruktioner beskriver hur du läser, skriver och tillämpar transformeringar på rasterdata som lagras i Azure Data Lake Storage med hjälp av en Synapse-notebook-fil. Avsikten är mer att demonstrera användningen av bibliotek i Synapse-notebook-filer än att demonstrera omvandlingen.

Förutsättningar

Instruktioner

  • Skriv ut information från rasterdata:

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    dataset_info = gdal.Info('/vsiadls/aoa/input/sample_image.tiff')  #/vsiadls/<container_name>/path/to/image
    print(dataset_info)
    

    Kommentar

    /vsiadls/ är en filsystemhanterare som möjliggör direkt slumpmässig läsning av främst icke-offentliga filer som är tillgängliga i Azure Data Lake Storage-filsystem. Det krävs inte någon tidigare nedladdning av hela filen. /vsiadls/ liknar /vsiaz/. Den använder samma konfigurationsalternativ för autentisering. Till skillnad från /vsiaz/ger /vsiadls/ verklig kataloghantering och ACL-stöd i Unix-stil. För vissa funktioner måste hierarkiskt stöd aktiveras i Azure Storage. Mer information finns i dokumentationen/vsiadls/.

    Driver: GTiff/GeoTIFF
    Files: /vsiadls/naip/input/sample_image.tiff
    Size is 6634, 7565
    Coordinate System is:
    PROJCRS["NAD83 / UTM zone 16N",
        BASEGEOGCRS["NAD83",
            DATUM["North American Datum 1983",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4269]],
        CONVERSION["UTM zone 16N",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",-87,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",0.9996,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",500000,
                LENGTHUNIT["metre",1],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["metre",1],
                ID["EPSG",8807]]],
        CS[Cartesian,2],
            AXIS["(E)",east,
                ORDER[1],
                LENGTHUNIT["metre",1]],
            AXIS["(N)",north,
                ORDER[2],
                LENGTHUNIT["metre",1]],
        USAGE[
            SCOPE["Engineering survey, topographic mapping."],
            AREA["North America - between 90°W and 84°W - onshore and offshore. Canada - Manitoba; Nunavut; Ontario. United States (USA) - Alabama; Arkansas; Florida; Georgia; Indiana; Illinois; Kentucky; Louisiana; Michigan; Minnesota; Mississippi; Missouri; North Carolina; Ohio; Tennessee; Wisconsin."],
            BBOX[23.97,-90,84,-84]],
        ID["EPSG",26916]]
    Data axis to CRS axis mapping: 1,2
    Origin = (427820.000000000000000,3395510.000000000000000)
    Pixel Size = (1.000000000000000,-1.000000000000000)
    Metadata:
      AREA_OR_POINT=Area
    Image Structure Metadata:
      COMPRESSION=DEFLATE
      INTERLEAVE=PIXEL
      LAYOUT=COG
      PREDICTOR=2
    Corner Coordinates:
    Upper Left  (  427820.000, 3395510.000) ( 87d45'13.12"W, 30d41'24.67"N)
    Lower Left  (  427820.000, 3387945.000) ( 87d45'11.21"W, 30d37'18.94"N)
    Upper Right (  434454.000, 3395510.000) ( 87d41' 3.77"W, 30d41'26.05"N)
    Lower Right (  434454.000, 3387945.000) ( 87d41' 2.04"W, 30d37'20.32"N)
    Center      (  431137.000, 3391727.500) ( 87d43' 7.54"W, 30d39'22.51"N)
    Band 1 Block=512x512 Type=Byte, ColorInterp=Red
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 2 Block=512x512 Type=Byte, ColorInterp=Green
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 3 Block=512x512 Type=Byte, ColorInterp=Blue
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    Band 4 Block=512x512 Type=Byte, ColorInterp=Undefined
      Overviews: 3317x3782, 1658x1891, 829x945, 414x472
    
  • Konvertera GeoTiff till PNG med hjälp av GDAL:

    from osgeo import gdal
    gdal.UseExceptions()
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    tiff_in = "/vsiadls/aoa/input/sample_image.tiff" #/vsiadls/<container_name>/path/to/image
    png_out = "/vsiadls/aoa/input/sample_image.png" #/vsiadls/<container_name>/path/to/image
    options = gdal.TranslateOptions(format='PNG')
    gdal.Translate(png_out, tiff_in, options=options)
    
  • Lagra GeoTiff-avbildningar i Azure Data Lake Storage.

    På grund av hur data lagras i molnet och det faktum att filhanterarna /vsiaz/ och /vsiadls/ endast stöder sekventiella skrivningar använder vi filmonteringsfunktionen som är tillgänglig i mssparkutils-paketet. När utdata har skrivits till en monteringsplats kopierar du dem till Azure Data Lake Storage enligt beskrivningen i den här exempeltransformeringen:

    import shutil
    import sys
    from osgeo import gdal
    from notebookutils import mssparkutils
    
    mssparkutils.fs.mount(
        "abfss://<container_name>@<storage_account_name>.dfs.core.windows.net",
        "/<mount_path>",
        {"linkedService":"<linked_service_name>"}
    )
    
    access_key = TokenLibrary.getSecret('<key-vault-name>','<secret-name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCOUNT', '<storage_account_name>')
    gdal.SetConfigOption('AZURE_STORAGE_ACCESS_KEY', access_key)
    
    options = gdal.WarpOptions(options=['tr'], xRes=1000, yRes=1000)
    gdal.Warp('dst_img.tiff', '/vsiadls/<container_name>/path/to/src_img.tiff', options=options)
    
    jobId = mssparkutils.env.getJobId()
    
    shutil.copy("dst_img.tiff", f"/synfs/{jobId}/<mount_path>/path/to/dst_img.tiff")
    

    I Azure Synapse kan du lägga till Azure Data Lake Storage som en av de länkade tjänsterna. Anvisningar finns i Länkade tjänster.

Exempellösning

En implementering av den här arkitekturen är tillgänglig på GitHub.

Det här diagrammet visar stegen i exempellösningen:

Diagram som visar stegen i exempellösningen.

Ladda ned en Visio-fil med den här arkitekturen.

Kommentar

Data hämtas från spaceborne-datakällor och kopieras till Azure Data Lake Storage. Datainmatningen ingår inte i referensimplementeringen.

  1. En Azure Synapse-pipeline läser spaceborne-data från Azure Data Lake Storage.
  2. Data bearbetas med GDAL-biblioteket i en Azure Synapse-anteckningsbok.
  3. Bearbetade data lagras i Azure Data Lake Storage.
  4. Bearbetade data läse från Azure Data Lake Storage och skickas till Custom Vision AI-modeller för objektidentifiering av en Anpassad Azure Synapse-aktivitet. Den anpassade aktiviteten använder Azure Batch-pooler för att köra objektidentifieringsmodellen.
  5. Objektidentifieringsmodellen visar en lista över identifierade objekt och avgränsningsrutor.
  6. De identifierade objekten konverteras till GeoJSON och lagras i Azure Data Lake Storage.
  7. GeoJSON-data läss från Azure Data Lake Storage och lagras i en PostgreSQL-databas.
  8. Data läse från PostgreSQL-databasen. Den kan visualiseras ytterligare i verktyg som ArcGIS Pro, QGIS och Power BI.

Installera geospatiala paket i en Azure Synapse Spark-pool

Du måste installera paketen i en Azure Synapse Spark-pool med hjälp av pakethanteringsfunktionen. Mer information finns i Azure Synapse-pakethantering.

För att stödja spaceborne-dataarbetsbelastningar i Azure Synapse behöver du bibliotek som GDAL, Rasterio och GeoPandas. Du kan installera dessa bibliotek på en serverlös Apache Spark-pool med hjälp av en YAML-fil. Anaconda-bibliotek är förinstallerade i Spark-poolen.

Förutsättningar

Instruktioner

  1. Följande bibliotek och paket är tillgängliga i filen environment.yml . Vi rekommenderar att du använder den här filen för att installera biblioteken i Spark-poolerna. Om du kopierar innehållet nedan kontrollerar du att det inte finns några flikar, eftersom YAML endast tillåter blanksteg som indrag.

    name: aoi-env
    channels:
      - conda-forge
      - defaults
    dependencies:
      - azure-storage-file-datalake
      - gdal=3.3.0
      - libgdal
      - pip>=20.1.1
      - pyproj
      - shapely
      - pip:
        - rasterio
        - geopandas
    

    Kommentar

    GDAL använder ett virtuellt filsystem /vsiadls/ för Azure Data Lake Storage.

  2. Gå till https://web.azuresynapse.net och logga in på din arbetsyta.

  3. Välj Hantera i navigeringsfönstret och välj sedan Apache Spark-pooler.

  4. Välj Paket genom att välja ellipsknappen (...) i Spark-poolen. Ladda upp environment.yml-filen från lokal fil och tillämpa paketinställningarna.

  5. Meddelandeavsnittet i portalen meddelar dig när installationen är klar. Du kan också spåra installationsframsteg genom att utföra följande steg:

    1. Gå till listan med Spark-program på fliken Övervaka .
    2. Välj länken SystemReservedJob-LibraryManagement som motsvarar din pooluppdatering.
    3. Visa drivrutinsloggarna.
  6. Kör följande kod för att kontrollera att rätt versioner av biblioteken har installerats. De förinstallerade biblioteken som Conda installerar visas också.

    import pkg_resources
    for d in pkg_resources.working_set:
       print(d)
    

Mer information finns i Hantera paket.

Deltagare

Den här artikeln uppdateras och underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudsakliga författare:

Ytterligare deltagare:

Nästa steg