Azure Management Core Library for Python

raw JSON →
1.6.0 verified Tue May 12 auth: no python install: stale

The `azure-mgmt-core` library provides extensions to Azure Core that are specific to Azure Resource Management (ARM), primarily used by Azure SDK management client libraries (e.g., `azure-mgmt-resource`). As a foundational component, it handles common ARM-specific patterns such as long-running operations and authentication challenges. The current stable version is 1.6.0, and it follows the release cadence of the broader Azure SDK for Python.

pip install azure-mgmt-core
error ModuleNotFoundError: No module named 'azure.mgmt.core'
cause This error occurs when the `azure-mgmt-core` package, or a module within it like `azure.mgmt.core.tools`, is not installed in the Python environment or is not accessible to the running script, often seen in misconfigured Azure CLI extensions or automation environments.
fix
Ensure azure-mgmt-core is installed in your environment, especially if you are using higher-level Azure management SDKs or Azure CLI extensions: pip install azure-mgmt-core
error ImportError: cannot import name 'get_arm_endpoints' from 'azure.mgmt.core.tools'
cause This `ImportError` typically happens when an older version of `azure-mgmt-core` is installed, and a dependent library (such as an Azure CLI extension or another `azure-mgmt-*` package) attempts to import `get_arm_endpoints`, a function that was added in `azure-mgmt-core` version 1.5.0 or later.
fix
Upgrade your azure-mgmt-core package to a version that includes the get_arm_endpoints function: pip install --upgrade azure-mgmt-core
error ImportError: cannot import name 'AzureClouds' from 'azure.core'
cause This error indicates a version incompatibility between `azure-core` and `azure-mgmt-core`, where `azure-mgmt-core` (or another dependent library) expects the `AzureClouds` object to be available in `azure.core`, but it's either missing or moved in the installed `azure-core` version.
fix
Ensure azure-core and azure-mgmt-core are compatible and updated. Upgrading both usually resolves the issue: pip install --upgrade azure-core azure-mgmt-core
error ModuleNotFoundError: No module named 'azure.profiles'
cause This error commonly occurs when a management client library, such as `azure-mgmt-compute`, which relies on `azure-mgmt-core` and implicitly `azure.profiles`, cannot find the `azure.profiles` module. This module is often provided by the `azure-common` package, which might be a missing transitive dependency.
fix
Install the azure-common package, which provides the azure.profiles module: pip install azure-common It's also advisable to ensure all related Azure SDK packages are up to date: pip install --upgrade azure-core azure-identity azure-mgmt-compute azure-mgmt-core
gotcha Direct installation of `azure-mgmt-core` is generally not needed for end-users. It is an internal dependency automatically installed when you install other service-specific Azure management SDKs (e.g., `azure-mgmt-compute`, `azure-mgmt-resource`).
fix Install the specific `azure-mgmt-<service>` package you need; `azure-mgmt-core` will be installed as a dependency.
breaking Python 3.8 is no longer supported starting with `azure-mgmt-core` version 1.6.0. Earlier versions of the Azure SDK for Python might have supported it, but the current generation of management libraries requires Python 3.9 or later.
fix Upgrade your Python environment to version 3.9 or later. The `requires_python` metadata is `^=3.9`.
breaking The credential system for Azure SDKs has been completely revamped. Older management libraries used `azure.common.credentials` or `msrestazure.azure_active_directory`. All modern Azure management libraries, which `azure-mgmt-core` underpins, now use classes from the `azure-identity` package.
fix Install the `azure-identity` package (`pip install azure-identity`) and then migrate your authentication code to use classes from it, such as `DefaultAzureCredential`. The `credential` parameter has also been renamed from `credentials` in many client constructors.
gotcha Asynchronous long-running operations in the newer Azure SDKs, which are handled through `azure-mgmt-core`, now typically use methods prefixed with `begin_` (e.g., `begin_create`, `begin_delete`). These methods return an `azure.core.polling.LROPoller` object.
fix When performing long-running operations, call the `begin_` prefixed method and then await or poll the returned `LROPoller` object for the final result.
python os / libc status wheel install import disk
3.10 alpine (musl) wheel - - 23.3M
3.10 alpine (musl) - - - -
3.10 slim (glibc) wheel 2.3s - 24M
3.10 slim (glibc) - - - -
3.11 alpine (musl) wheel - - 25.6M
3.11 alpine (musl) - - - -
3.11 slim (glibc) wheel 2.3s - 26M
3.11 slim (glibc) - - - -
3.12 alpine (musl) wheel - - 17.3M
3.12 alpine (musl) - - - -
3.12 slim (glibc) wheel 2.1s - 18M
3.12 slim (glibc) - - - -
3.13 alpine (musl) wheel - - 17.1M
3.13 alpine (musl) - - - -
3.13 slim (glibc) wheel 2.2s - 18M
3.13 slim (glibc) - - - -
3.9 alpine (musl) wheel - - 22.5M
3.9 alpine (musl) - - - -
3.9 slim (glibc) wheel 2.6s - 23M
3.9 slim (glibc) - - - -

This library is primarily an internal dependency for Azure management SDKs. As such, direct 'quickstarts' for `azure-mgmt-core` are uncommon. Instead, its functionality is consumed by service-specific management clients (e.g., `ResourceManagementClient`). This example demonstrates how to initialize and use a typical Azure management client, which implicitly leverages `azure-mgmt-core` for its core ARM functionalities like authentication and request handling. Ensure `AZURE_SUBSCRIPTION_ID` is set as an environment variable or replaced.

import os
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient

# NOTE: azure-mgmt-core is an internal dependency for Azure management SDKs.
# This quickstart demonstrates how a typical Azure management client is used,
# which indirectly relies on azure-mgmt-core.

# Your Azure subscription ID
# It's recommended to set this as an environment variable (AZURE_SUBSCRIPTION_ID)
# or retrieve it from your Azure context.
subscription_id = os.environ.get("AZURE_SUBSCRIPTION_ID", "your-subscription-id")

if subscription_id == "your-subscription-id":
    print("Please set the AZURE_SUBSCRIPTION_ID environment variable or replace 'your-subscription-id'.")
    exit()

# Authenticate with Azure using DefaultAzureCredential.
# This attempts to authenticate via various methods like environment variables, Azure CLI, managed identity, etc.
credential = DefaultAzureCredential()

# Create a ResourceManagementClient (which uses azure-mgmt-core internally)
resource_client = ResourceManagementClient(credential, subscription_id)

# Example: List all resource groups in the subscription
print(f"Listing resource groups in subscription: {subscription_id}")
for rg in resource_client.resource_groups.list():
    print(f"- {rg.name} (Location: {rg.location})")

print("\nQuickstart finished. This demonstrates how an Azure management client (which relies on azure-mgmt-core) is typically used.")