ImportError: con error ‘no es un paquete’

En Python 3 entrar en problemas ImportError. La estructura de mi proyecto es como:

cts_sap_polaris/ |-- etc | |-- clean_cts_sap_polaris.yaml | |-- clean_env_variables.tcl | |-- cts_sap_polaris_ha_combined.yaml | |-- cts_sap_polaris.yaml | `-- TCL_TESTBED_CONFIGS |-- __init__.py |-- jobs | |-- __init__.py | |-- __pycache__ | | `-- run_cts_sap_polaris.cpython-34.pyc | `-- run_cts_sap_polaris.py |-- lib | |-- cli_check.py | |-- cts_sap_polaris_utils.py | |-- __init__.py | |-- router_show_cts_cmd.py | |-- router_show_etherchannel_cmd.py | |-- router_show.py | |-- utils.py | |-- validate_show_output.py | `-- wait_for.py |-- scripts | |-- cts_sap_polaris_ha_combined.py | |-- cts_sap_polaris.py | |-- __init__.py | `-- __pycache__ | `-- cts_sap_polaris.cpython-34.pyc `-- test |-- code_snippets |-- cts_interface.json |-- cts_interface_summary.json |-- etherchannel_port_channel.json |-- etherchannel_port.json |-- __init__.py |-- test_cts_sap_cli.py `-- test_router_show.py 

En scripts/cts_sap_polaris.py estoy intentando una importación

 import cts_sap_polaris.lib.cli_check as cli_check 

Que está lanzando este error:

 ImportError: No module named 'cts_sap_polaris.lib'; 'cts_sap_polaris' is not a package. 

Cambie el nombre de cts_sap_polaris.py a otra cosa.

Este nombre entra en conflicto con el nombre del paquete (que tiene el mismo nombre).

(El crédito va a @Jedwards en su comentario)

Por lo que entiendo, python solo busca el directorio actual y sys.path. Por lo que puede agregar a la ruta de acceso de python en tiempo de ejecución. Una pregunta similar ha sido respondida aquí

Te sugiero que pruebes esto ..

  # scripts/cts_sap_polaris.py # Add additional path to current sys path import sys sys.path.insert(0,'/path/to/cts_sap_polaris/lib') import cli_check 

Déjame saber si funciona.