2015-12-29 16 views
11

Ho l'ultimo PyCharm CE e lo sto usando con virtualenv. Ho definito l'interprete come interprete nello virtualenv. La finestra Project Interpreter di PyCharm elenca tutti i pacchetti che ho installato. L'ho confermato eseguendo pip freeze > requirements.txt e scorrendo i pacchetti manualmente.PyCharm non riesce a trovare i pacchetti in virtualenv

mio problema è che PyCharm non troverà certo include nelle sue finestre dell'editor, come Flask-Login:

Nel from flask.ext.login import current_user, login_user, logout_user, login_required includes current_user, login_user, logout_user, login_required sono tutti contrassegnati come riferimenti non risolti.

mi sto perdendo qualcosa?

+2

Ho avuto questo problema una volta ed è stato proprio JetBrains essere zoppo. Prova 'File -> Invalidate Caches' e riavvia PyCharm.Potrebbe essere necessario attendere alcuni minuti per ricreare le cache – wim

+0

Non ha funzionato per me. – ruipacheco

risposta

22

Il problema potrebbe risiedere in PyCharm rilevando "percorsi interprete" difettosi per il proprio ambiente virtuale. Vai qui:

PyCharm (menu) -> Preferences (Menu option) 
       -> Project: <name> (Dropdown) 
       -> Project Interpreter (Menu option) 
       -> 'Settings' button (Looks like a gear) 
       -> More (Menu option) 
       -> Select your virtualenv interpreter 
       -> Click 'Show paths for interpreter' button (on bottom of list window) 

Ora che sei in questa (certamente tortuosamente trovato) posizione, si dovrebbe vedere i percorsi utilizzati da questo interprete. Se la mia teoria è corretta, questi stanno puntando a posizioni di sistema globali. Per aggiungere i percorsi dell'ambiente virtuale, è necessario fare clic sul pulsante + e aggiungere percorsi corrispondenti all'interno del proprio ambiente virtuale. Una volta che hai finito, è una buona idea selezionare i percorsi globali del sistema e fare clic su - per rimuoverli. Fai clic su Applica e vai su File -> Invalidate caches/Restart per ricaricare PyCharm.

Questo dovrebbe far puntare il tuo interprete alla posizione corretta per le librerie che hai installato nel tuo virtualenv, e non dovresti più ricevere l'errore di importazione. Nota che anche con questa correzione non vedrai le tue librerie sotto lo Project Interpreter, ma dovrebbero essere caricate.

+0

Questa è la procedura corretta in effetti (anche se è in qualche modo ridicolo che PyCharm sia così primitivo su queste cose). – gented

+0

Questo è folle. Grazie per averlo indicato. – newlog

0

Aprire Preferences -> Project -> Project Interpreter, vede il modulo lì?

Se sì, è possibile che un altro file nel progetto abbia lo stesso nome di flask.ext.login, in questo modo si impedisce a pycharm di individuare il modulo effettivo.

Se no, è possibile fare clic sul ... accanto al vostro interprete e selezionare more..., selezionare l'interprete e in basso (accanto al filtro), fare clic sulla Show paths for the selected interpreter, è possibile aggiungere il percorso del modulo lì.

+0

Ho provato cosa hai suggerito ma non ha funzionato per me. Ho persino creato una nuova virtualenv con pypy ma gli stessi include non sono ancora stati trovati. – ruipacheco

+0

scusa, non ho idea di come risolvere il tuo problema. –

3

Nella versione più recente di PyCharm (2016/01/04 nel mio caso):

  • Impostazioni
  • progetto: nome del progetto
    • progetto Interprete
    • sul lato destro ci sarà essere un menu a discesa in cui è possibile scegliere l'interprete. Ci dovrebbero essere opzioni venv.

vedi immagine sotto per una migliore spiegazione (come hanno detto, 1 foto del valore di migliaia di parola)

Setting python interpreter

Problemi correlati