2015-01-02 5 views
5

Ho un'applicazione al lavoro configurata con la seguente struttura.Come informare PyCharm della posizione dei moduli personalizzati?

/project_root 
    /applications 
     /app1 
      __init__.py 
     /app2 
      __init__.py 
     ... 
     /appN 
    /pkg 
     /database 
      __init__.py 
     /toolbox 
      __init__.py 
     ... 
     __init__.py 
    __init__.py 
    main_framework.py 

Sto studiando usando PyCharm (edizione community), invece dello strumento PyDev di Eclipse. In __init__.py in app1 ho un'istruzione import che assomiglia a questo:

import pkg.database 

PyCharm lamenta l'importazione con un messaggio no module named pkg.

PyCharm Error (clicca per ingrandire l'immagine)

causa come il quadro è costruito, però, il sistema funziona bene. Ognuno dei appN s conosce la directory pkg. Come posso informare PyCharm di avere dei moduli personalizzati nella directory pkg in modo che questi avvisi si interrompano?

Sto testando PyCharm 4.0.3 Community Edition.

Un paio di cose che ho provato, grazie per i commenti qui sotto, che non hanno aiutato:

  • Nella finestra di progetto Struttura, project_root è stato indicato come l'unica directory sotto "Root Contenuto" a destra lato della mano del dialogo. Ho aggiunto la directory pkg in modo che sia elencata. Questo non ha avuto alcun effetto.
  • Nella versione iniziale della domanda, ho perso lo __init__.py in pkg durante la visualizzazione della struttura. Questo file esiste.
+1

Hai fatto 'project_root' la root di origine per il tuo progetto? – nbro

+0

Prova a usare 'project_root.pkg.database' anche se penso che non funzionerà. Seconda opzione, prova a rendere anche 'pkg' una fonte radice, contrassegnala come' Fonte'. Se funziona, dimmelo e lo posterò come risposta. Penso che il secondo dovrebbe funzionare. – nbro

+0

La seconda opzione non ha funzionato (l'ho impostata come 'Source' e quindi riavviata PyCharm). Considererò la prima opzione se nient'altro si presenta semplicemente perché non voglio modificare tutti gli script 'appN' se non ne ho bisogno. – Andy

risposta

13

La soluzione a questo è stato un processo in due fasi:

  1. aggiungere la directory pkg come una radice fonte. Per fare ciò, selezionare File ->Settings ->Project -> (selezionare il progetto) ->Project Structure quindi selezionare la directory pkg e aggiungere facendo clic sul pulsante Sources. Clicca Ok.
  2. Quindi selezionare File ->Invalidate Caches/Restart ->Invalidate and Restart

Attendere PyCharm per riavviare e ricostruire è cache/scansione degli indici. Ora la directory pkg viene rilevata come root di origine e i miei errori non ci sono più.

Problemi correlati