2013-10-05 25 views
9

Sto usando PyDev.Pydev mostra un'importazione non risolta, ma lo script viene eseguito?

Sto cercando di organizzare le mie classi di progetto in pacchetti.

ad es. In una cartella ho un modulo alla /libraries/fund_price_library.py

in un altro file nel mio progetto, ho provare a importare utilizzando:

from libraries.fund_price_library import FundPriceLibrary as fpl 

PyDev sottolinea "FundPriceLibrary come FPL" in rosso, la marcatura con questo errore:

unresolved import fpl 

Tuttavia, il mio script funziona perfettamente bene, quindi credo che sto facendo l'importazione correttamente.

Ho molti errori simili in tutto il mio progetto e sembra disordinato. Tuttavia, il mio codice Python funziona, quindi presumo di importarlo correttamente.

Come si eliminano questi errori?

risposta

0

Soluzione rapida e sporca:

Forse si può dire pydev di ignorare l'errore di importazione utilizzando il markup UnresolvedImport nel codice. Vedere how-can-i-make-the-pydev-editor-selectively-ignore-errors per una discussione sull'argomento.

PS Se stai usando pydev in eclissi, ctrl + 1 dovrebbe suggerire questa soluzione.

8

This question potrebbe contenere la soluzione al tuo problema.

In the properties for your pydev project, there's a pane called "PyDev - PYTHONPATH", with a sub-pane called "External Libraries". You can add source folders (any folder that has an init.py) to the path using that pane. Your project code will then be able to import modules from those source folders.

Potrebbe semplicemente essere che PyDev non sa dove trovare i file.

+0

Stranamente, funziona, anche se i miei file sono nel mio progetto corrente, piuttosto che in una libreria esterna. – Ginger

+0

Immagino che qualcosa del percorso nelle impostazioni di PyDev sia fasullo, quindi PyDev non riesce a trovare la libreria, anche se Python può farlo. (anche tu puoi accettare la mia risposta cliccando sul segno di spunta) –

+0

python 3 ha pacchetti di spazi dei nomi impliciti e i file init non sono obbligatori. Non so se è correlato ma il mio progetto non contiene i file init e purtroppo questo non ha risolto il problema per me. Vedi la mia risposta però. – Jerther

0

Ho avuto lo stesso problema. Soluzione è (Ho Eclipse 4.6 w/Pydev 5.6):

Project > Properties > PyDev - PYTHONPATH > tab Source Folders 

Fate questo: Add source folder (pulsante) e aggiungere il vostro (corrente) fonte dir, nel mio caso è stato src subdir così nuovo elemento apears nella finestra : /${PROJECT_DIR_NAME}/src

Così ora ho questo c'è:

/${PROJECT_DIR_NAME} 
/${PROJECT_DIR_NAME}/src 

e il mio PyDev è felice ora :)

1

Python 3 ha implicit namespace packages quindi i file __init__.py nei pacchetti secondari non sono obbligatori. Tuttavia, sembra che PyDev abbia ancora bisogno di loro.

La mia soluzione era aggiungere file vuoti __init__.py in pacchetti secondari.

Problemi correlati