Irrisolti Problemi di Importazione con Eclipse e PyDev

Sono molto nuovo a PyDev e Python, se ho usato Eclipse per Java abbondanza. Sto cercando di lavorare un po ‘ Dive Into Python esempi e questo si sente come un estremamente banale problema che solo diventando estremamente fastidioso. Sto usando Ubuntu Linux 10.04.

Voglio essere in grado di utilizzare il file odbchelper.py che si trova nella directory /Desktop/Python_Tutorials/diveintopython/py

Qui è il mio example.py il file su cui sto lavorando nel mio PyDev/progetto Eclipse:

import sys
sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py")

Questo funziona bene, ma poi voglio la successiva riga di codice:

import odbchelper

e questo causa un irrisolti importazione di errore ogni volta. Ho aggiunto __init__.py file per ogni directory possibile e non aiuta nulla. Ho provato ad aggiungere __init__.py i file uno alla volta i vari livelli di directory tra il percorso del progetto e la odbchelper.py file, e ho anche provato ad aggiungere il __init__.py i file di tutte le cartelle tra contemporaneamente. Né opere.

Tutto quello che voglio fare è avere un progetto da qualche parte, in qualche altra directory, dire /Desktop/MyStuff/Project, in cui ho example.py … e poi da example.py voglio importare odbchelper.py da /Desktop/Python_Tutorials/diveintopython/py/

Ogni bordo del messaggio di risposta che posso trovare solo dire di usare il sys.path.append() funzione per aggiungere questa directory per il mio percorso, e quindi importarlo … ma è proprio quello che sto facendo nel mio codice e non funziona.

Ho provato anche il Ctrl1 trucco per eliminare il messaggio di errore, ma il programma non funziona ancora correttamente. Ho un errore, ImportError: No module named odbchelper. Quindi è chiaro che non sempre il percorso aggiunti, o c’è qualche problema che tutti il mio numero di permutazioni di aggiungere __init__.py file ha perso.

È molto frustrante che qualcosa di così semplice… chiamare le cose da parte di alcuni file che esiste da qualche altra parte sulla mia macchina… questo richiede molto sforzo.

  • Assicurarsi che il caso (capitalizzazione) è corretto per tutte le directory necessarie nel vostro PYTHONPATH.
  • So che questo è già stato risposto, ma mi è stato sempre irrisolti di importazione per il grp modulo. Ho appena aggiunto al builtins elenco in Preferenze>PyDev>Interpreti>Python>Costretto Builtins e ancora ottenere l’autocompletamento per quel modulo
InformationsquelleAutor ely | 2011-01-07



10 Replies
  1. 129

    In proprietà per il pydev progetto, c’è un riquadro chiamato “PyDev – PYTHONPATH”, con un sub-riquadro chiamato “Librerie Esterne. È possibile aggiungere cartelle di origine (in una cartella che ha un __init__.py) per il percorso utilizzando quel riquadro. Codice del progetto sarà quindi in grado di importare i moduli da quelle cartelle di origine.

    • Se si imposta il pydev proprietà correttamente, non c’è bisogno di pasticciare con sys.path
    • Per altri ricercatori, volevo aggiungere la mia esperienza -Windows 7, Python 2.7.1, Eclipse 3.6.2, PyDev, Pyschopg (Per Python 2.7 amd64). L’installazione di Psychopg andato a C:\Python27\Lib\site-packages\psycopg2 ( sotto il Python 2.7 installazione ). I primi a cui fa riferimento la cartella e tutte le sottocartelle con init.py, ma trovato ho avuto a riferimento il site_packages cartella. ( stackoverflow.com/questions/2983088/unresolved-import-models ) ( stackoverflow.com/questions/4631377/… )
    • Un altro punto da notare – Eclipse potrebbe essere necessario riavviare per questo lavoro. Questo sembra funzionare solo tramite “File -> Riavvia” e non chiudendo e riaprendo manualmente.
    • nota Importante: ho trovato che l’interprete di configurazione Automatica aggiunge C:\Python27\lib\site-packages, ma sul mio computer, la cartella lib è capitalizzati: C:\Python27\Lib\site-packages. Sostituire il minuscola voce con un maiuscolo, e poi File->Riavvio ha risolto il problema per me. Speranza che aiuta qualcun altro là fuori 🙂
    • nota Importante #2: ho un maiuscolo cartella lib, ma ha funzionato per me, solo togliendo la corrente interprete python quindi la creazione di uno nuovo (pulsante “configurazione Automatica”) e un File->Riavviare.
    • Vorrei poter pollici commento fino a 20 volte, ho passato un’ora buona a cercare di capire perché il mio importazione è stata ancora risolta. Grazie
    • soulBit la soluzione consente inoltre di correggere interno o pacchetti personalizzati che sono cambiato, cioè di ristrutturazione la struttura della cartella dei pacchetti.
    • mi hai risparmiato un sacco di guai! +1
    • Se le cose ancora non funzionano: rimuovere il vostro interprete python e solo ricreare poi File->Riavviare. Che ha funzionato per me.
    • Grande thread. Ho provato di tutto questo più volte, ma mantenuto sempre lo stesso errore. Nel mio caso, l’errore è che ho creato un modulo con lo stesso nome in due posti diversi, sia in PYTHONPATH. Ho capito presto e cancellato il .py ma non .pyc . Ore più tardi, e tutti i passi di qui dietro, ho rimosso il .pyc per risolvere il problema. Speranza che aiuta qualcuno in seguito.
    • Non sono sicuro se questo sarà aiutare gli altri, ma fare in modo che se siete in codice è fare qualcosa di simile import api.models, si desidera aggiungere la cartella che non contiene api directory, non api directory stessa. Il sistema sarà in parte il percorso per una sottocartella chiamata api durante l’importazione. Ottenuto qui: stackoverflow.com/questions/14201504/…
    • Per Windows 8: Anche dopo il File->Riavviare PyDev (3.5) non importare una libreria esterna. Ma dopo un riavvio del sistema, al riavvio di Eclipse 4.3.2, mi è stato chiesto se volevo importare le librerie per il mio pythonpath. Il successo!
    • Questo non ha funzionato per me con Google Buffer di Protocollo. Ho aggiunto “google” forzato ” built-in, eseguito in File > Riavvio e tutto ha iniziato a lavorare.
    • Ricordarsi di tenere un __init__.py nella cartella principale, il /src, e /lib.
    • si prega di aggiungere che come risposta! Di riferimento anche Martin risposta (progetto->Pydev->”Rimuovere marcatori di errore”). Eclipse non può essere invocata per innescare la ricostruzione automaticamente.
    • Il mio codice dovrebbe funzionare bene, ma eclipse continuava a dire che potrebbe non risolvere alcune relative importazioni. Beh, c’era uno SPAZIO nel nome della cartella del progetto. Sostituito con un carattere di sottolineatura e il problema è sparito.
    • La soluzione data da @BitByte_Bake è molto più facile e deve essere utilizzato prima.

  2. 48

    Sto usando eclipse kepler 4.3, PyDev 3.9.2 e sul mio ubuntu 14.04 ho incontrato lo stesso problema. Ho provato e ha trascorso ore, con la maggior parte delle opzioni, ma invano. Poi ho provato il seguente, che è stato grande:

    • Selezionare Progetto-> tasto destro-> PyDev-> Rimuovere PyDev Progetto Config
    • file-> riavviare

    E stavo usando Python 2.7 come interprete, anche se non l’effetto, credo.

    • Non c’è bisogno di riavviare Eclipse, basta chiudere e riaprire il file. Ha anche lavorato su Windows con l’Eclissi di Luna, Grazie!
    • Questo ha funzionato per me. Grazie!
    • Ho dovuto riavviare Eclipse due volte a fare le avvertenze scomparire. Grazie
    • Questo ha funzionato per me.. una soluzione rapida ..
    • Grazie uomo.. davvero una soluzione dopo 2 ore..
    • Funziona con Python 3.7 così. Questa dovrebbe essere la soluzione a questa domanda.
    • Ho provato questo e ora non posso iniziare il mio DEV server. Come faccio a sostituire il file?
    • qual è la causa?

  3. 42

    Ho appena aggiornato un WXWindows progetto di Python 2.7 e non ha fine di difficoltà Pydev a riconoscere il nuovo interprete. Ha fatto la stessa cosa come sopra, la configurazione di un interprete, ha fatto una nuova installazione di Eclipse e Pydev. Pensare che qualche parte di python deve essere stato corrotto, così ho re-installato tutto di nuovo. Arghh! Chiuso e riaperto il progetto, e il riavvio di Eclipse tra tutti questi cambiamenti.

    INFINE notato che si puo ‘rimuovere il PyDev progetto di configurazione facendo clic destro sul progetto. Poi può essere fatto in un PyDev progetto di nuovo, ora è buono come l’oro!

    • Questo ha funzionato perfettamente per me.
    • non ha funzionato per me
    • Questo ha funzionato! Aggiunto File->Riavviare 😀
    • Sì, chiuso e riaperto il progetto di sbarazzarsi di quella inquietante ImportError messaggi
  4. 17

    Ho risolto il mio pythonpath e tutto era dandy quando ho importato roba tramite la console, ma tutti questi precedentemente irrisolti, le importazioni sono state ancora segnato come errore nel mio codice, non importa quante volte ho riavviato eclipse o aggiornamento/pulire il progetto.

    Ho ragione cliccato il progetto->Pydev->Rimuovere marcatori di errore e si sono sbarazzati di quel problema. Non preoccuparti, se il codice contiene errori effettivi saranno ri-segnato.

    • Questo funziona bene utilizzando liclipse con odoo 10. Grazie!
  5. 10

    progetto–>proprietà – >pydev-pythonpath–>librerie esterne –> aggiungi cartella di origine, aggiungere la CARTELLA principale del progetto. Riavviare eclipse.

    • Bene, questa è stata quella che ha risolto il mio problema.
    • Non c’è bisogno di riavviare basta chiudere e riaprire il file. Fisso per me!
  6. 4

    Qui è che cosa ha funzionato per me (sugested da soulBit):

    1) Restart using restart from the file menu
    2) Once it started again, manually close and open it.

    Questa è la soluzione più semplice che mai e si elimina completamente la cosa fastidiosa.

  7. 1

    Ci sono due modi per risolvere questo problema:

    • Eliminare l’interprete Python da “Python interpreti” e aggiungere di nuovo.
    • O basta aggiungere la cartella con le biblioteche, l’interprete si sta utilizzando nel vostro progetto, nel mio caso ero con la “bottiglia” e la cartella che ho aggiunto è stato “c:\Python33\Lib\site-packages\bottle-0.11.6-py3.3.egg”

    Ora non riesco a vedere l’errore più, e la funzionalità di completamento del codice funziona anche con le “bottiglia”.

  8. 1

    Sto usando Eclipse 4.2.0 (Juno) e PyDev 2.8.1, e sono imbattuto in questo problema con un lib installato il mio sito-pacchetti di percorso. Secondo questo MODO domanda:

    Pydev e *.File pyc

    …c’è un problema con PyDev e file pyc. In caso di particolare lib ho cercato di riferimento, tutto ciò che viene consegnato è pyc file.

    Ecco cosa ho fatto per risolvere questo:

    1. Installare uncompyle2 da https://github.com/Mysterie/uncompyle2
    2. Eseguire uncompyle2 contro l’ *.pyc file in /site-packages lib. Esempio:

      uncompyle2 -r-o /tmp /path/to/site-packages/lib

    3. Rinominare la risultante *.pyc_dis file prodotti da uncompyle2 a *.py
    4. Spostare /copiare questi *.py file /site-packages percorso
    5. In Eclipse, selezionare File > Riavviare

    Irrisolte importazione di errore relative al .pyc file dovrebbero scomparire.

  9. 0

    Seguenti, a mio parere, il problema verrà risolto

    1. Aggiunta la init.py per il tuo “~/Desktop/Python_Tutorials/diveintopython/py” cartella
    2. Va alla Finestra –> Preferenze –> PyDev –> Interpreti –> Interprete Python per rimuovere il vostro Interprete Python impostazione (motivo è perché PyDev grado di aggiornamento automatico gli aggiornamenti effettuati a qualsiasi Sistema PythonPath)
    3. Aggiungere l’Interprete con gli stessi dettagli, come prima (questo permetterà di aggiornare il vostro Interprete Python impostazione con gli aggiornamenti apportati al tuo PythonPath)
    4. Infine, poiché il “~/Desktop/Python_Tutorials/diveintopython/py” cartella non standard PythonPath, è necessario aggiungerlo. Ci sono due modi per farlo

    un. Come per quello che David tedesco suggerito. Tuttavia questo applicabile solo per il particolare progetti che si sono in
    b. Aggiungere in “~/Desktop/Python_Tutorials/diveintopython/py” in un nuovo PythonPath sotto la Finestra –> Preferenze –> PyDev –> Interpreti –> Interprete Python –> Librerie sottoscheda –> NewFolder

    Speranza che aiuta.

  10. -1
    KD.py
    
    class A:
    a=10;
    
    KD2.py 
    from com.jbk.KD import A;
    class B:
      b=120;
    
    aa=A();
    print(aa.a)

    QUESTO file funziona perfettamente per me

    Un altro esempio è

    main.py
    =======
    from com.jbk.scenarios.objectcreation.settings import _init
    from com.jbk.scenarios.objectcreation.subfile import stuff
    
    _init();
    stuff();
    
    settings.py
    ==========
    def _init():
    print("kiran")
    
    
    subfile.py
    ==========
    def stuff():
    print("asasas")    
    • Si prega di prendere in considerazione per separare i nomi di file e codici. Ed è anche necessario per risolvere alcuni rientri.

Lascia un commento