2016-07-19 4 views
4

In Python 3 Einstieg in ImportError Probleme. Meine Projektstruktur ist wie:ImportError: mit Fehler 'ist kein Paket'

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 

In scripts/cts_sap_polaris.py I

import cts_sap_polaris.lib.cli_check as cli_check 

einen Import versuche Welche diesen Fehler zu werfen:

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

Von welchem ​​Verzeichnis versuchen Sie, dieses Skript auszuführen? Aus dem Skriptverzeichnis heraus? Sie müssen es entweder aus dem selben Verzeichnis ausführen, in dem Sie sich befanden, als Sie die Struktur erhalten haben, oder dieses Verzeichnis zu Ihrem PYTHONPATH hinzufügen. – jedwards

+1

Eigentlich müssten Sie * das tun, aber in Ihrem Fall wird die Existenz der Datei "cts_sap_polaris.py" * auch * im Skriptverzeichnis immer zuerst gefunden. Es muss auch umbenannt (oder verschoben) werden. – jedwards

Antwort

0

Von dem, was ich verstehe, Python nur sucht die aktuelles Verzeichnis und sys.path. Sie können also den Python-Pfad zur Laufzeit hinzufügen. Eine ähnliche Frage hat here

beantwortet würde ich vorschlagen, Sie versuchen diese ..

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

Lassen Sie mich wissen, ob es funktioniert.

Verwandte Themen