oci-cli icon indicating copy to clipboard operation
oci-cli copied to clipboard

ModuleNotFoundError: No module named 'src' | Installed via pip install oci_cli in container

Open oneoneonepig opened this issue 5 months ago • 1 comments

If oci_cli is installed via pypi, it cannot be executed correctly.

$ podman run --rm -it quay.io/centos/centos:stream9 bash
bash-5.1# yum install python3-pip
bash-5.1# pip install oci_cli
bash-5.1# oci --version
3.64.0
bash-5.1# oci support incident createTraceback (most recent call last):
  File "/usr/local/bin/oci", line 5, in <module>
    from oci_cli.cli import cli
  File "/usr/local/lib/python3.9/site-packages/oci_cli/__init__.py", line 30, in <module>
    dl.load_required_services_for_invocation()
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 53, in load_required_services_for_invocation
    load_service_from_command(sys.argv)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 86, in load_service_from_command
    load_service(arg)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 92, in load_service
    load_service_modules(path.join(services_dir, service_mapping[service][0]), service_mapping[service][0])
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 109, in load_service_modules
    load_extended(path.join(modules, mod), service, mod)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 125, in load_extended
    load_module(".{service}.src.{mod}.{extended_mod}".format(service=service, mod=mod, extended_mod=file[:-3]))
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 129, in load_module
    __import__(ALL_SERVICES_DIR + mod_path)
  File "/usr/local/lib/python3.9/site-packages/services/cims/src/oci_cli_incident/cims_cli_extended.py", line 16, in <module>
    from src.oci_cli import cli_exceptions
ModuleNotFoundError: No module named 'src'

oneoneonepig avatar Aug 19 '25 07:08 oneoneonepig

Fallback to the previous version 3.63.3 fixes the issue

Bad version (latest as of Aug 19, 3.64.0):

bash-5.1# pip install oci-cli
bash-5.1# oci support incident create
Traceback (most recent call last):
  File "/usr/local/bin/oci", line 5, in <module>
    from oci_cli.cli import cli
  File "/usr/local/lib/python3.9/site-packages/oci_cli/__init__.py", line 30, in <module>
    dl.load_required_services_for_invocation()
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 53, in load_required_services_for_invocation
    load_service_from_command(sys.argv)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 86, in load_service_from_command
    load_service(arg)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 92, in load_service
    load_service_modules(path.join(services_dir, service_mapping[service][0]), service_mapping[service][0])
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 109, in load_service_modules
    load_extended(path.join(modules, mod), service, mod)
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 125, in load_extended
    load_module(".{service}.src.{mod}.{extended_mod}".format(service=service, mod=mod, extended_mod=file[:-3]))
  File "/usr/local/lib/python3.9/site-packages/oci_cli/dynamic_loader.py", line 129, in load_module
    __import__(ALL_SERVICES_DIR + mod_path)
  File "/usr/local/lib/python3.9/site-packages/services/cims/src/oci_cli_incident/cims_cli_extended.py", line 16, in <module>
    from src.oci_cli import cli_exceptions
ModuleNotFoundError: No module named 'src'

Good version (3.63.3):

bash-5.1# pip install oci-cli==3.63.3
bash-5.1# oci support incident create
Usage: oci support incident create [OPTIONS]

Error: Missing option(s) --compartment-id, --problem-type, --csi, --severity, --title, --description.

oneoneonepig avatar Aug 19 '25 08:08 oneoneonepig