Azure / Azure/azure-cli

Failure on SLES 15 SP3 VM: No module named azure.cli.__main__

Open
#20,839 12 comments 0 reactions 2 assignees Claimed by @chasewilson View on GitHub
act-platform-engineering-squad common issue feature-request Installation
Dominant language
Python
Stars
4.6k
Forks
3.5k
Avg merge
3d 2h
Merged PRs (30d)
60

Description

**Describe the bug**

Following https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=zypper, a freshly installed Azure CLI fails with

```
> az -v
/usr/bin/python3.6: No module named azure.cli.__main__; 'azure.cli' is a package and cannot be directly executed
```

This is because [SLES (SUSE Linux Enterprise Server)](https://www.suse.com/products/server/) 15 SP3 VM has a pre-installed Azure CLI 2.16.0 which is outdated and conflicts with latest version.

```
> ls -d /usr/lib/python3.6/site-packages/azure_cli*
/usr/lib/python3.6/site-packages/azure_cli-2.16.0-py3.6.egg-info
/usr/lib/python3.6/site-packages/azure_cli_command_modules_nspkg-2.0.3-py3.6.egg-info
/usr/lib/python3.6/site-packages/azure_cli_core-2.16.0-py3.6.egg-info
/usr/lib/python3.6/site-packages/azure_cli_nspkg-3.0.4-py3.6.egg-info
/usr/lib/python3.6/site-packages/azure_cli_telemetry-1.0.6-py3.6.egg-info

> ls -l /usr/lib/python3.6/site-packages/azure/cli
total 16
-rw-r--r-- 1 root root 0 Jun 28 2019 __init__.py
-rw-r--r-- 1 root root 5532 Dec 4 2020 __main__.py
drwxr-xr-x 2 root root 37 Dec 16 11:27 __pycache__
drwxr-xr-x 65 root root 4096 Dec 16 11:28 command_modules
drwxr-xr-x 8 root root 4096 Dec 16 11:28 core
drwxr-xr-x 4 root root 93 Dec 16 11:27 telemetry
```

After installing the latest version, `/usr/lib/python3.6/site-packages/azure/cli/__main__.py` is removed

```
> ls -l /usr/lib/python3.6/site-packages/azure/cli
total 4
-rw-r--r-- 1 root root 0 Jun 28 2019 __init__.py
drwxr-xr-x 2 root root 37 Dec 16 11:27 __pycache__
drwxr-xr-x 3 root root 44 Dec 27 08:58 command_modules
drwxr-xr-x 8 root root 4096 Dec 16 11:28 core
drwxr-xr-x 4 root root 93 Dec 16 11:27 telemetry
```

leaving `/usr/lib/python3.6/site-packages/azure/cli` a [regular package](https://docs.python.org/3/reference/import.html#regular-packages), conflicting with the latest Azure CLI which is a [namespace package](https://docs.python.org/3/reference/import.html#namespace-packages) under `/usr/lib64/az/lib/python3.6/site-packages/azure/cli` (https://github.com/Azure/azure-cli/pull/14372).

## Solution

Remove the pre-installed Azure CLI before installing the latest one:

```
> sudo zypper rm -y --clean-deps azure-cli
```

If you have already installed the latest one, revert back to the pre-installed one first and reinstall the latest one:

```
> sudo zypper install --oldpackage azure-cli-2.16.0-6.7.1
> sudo zypper rm -y --clean-deps azure-cli
```

The package name may vary on different system version, run `zypper --no-refresh info azure-cli` on a new SLES 15 SP3 VM to check the source package format:

```
> zypper --no-refresh info azure-cli

Information for package azure-cli:
----------------------------------
Repository : @System
Name : azure-cli
Version : 2.16.0-6.7.1
Arch : noarch
Vendor : SUSE LLC
Support Level : unknown
Installed Size : 15.9 MiB
Installed : Yes
Status : up-to-date
Source package : azure-cli-2.16.0-6.7.1.src
Summary : Microsoft Azure CLI 2.0
Description :
Microsoft Azure CLI 2.0 Command Line Utilities
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.