Errore importando un modulo python in Django
-
21-09-2019 - |
Domanda
Nel mio progetto Django, la seguente riga genera un ImportError:. "No module named elementtree"
from elementtree import ElementTree
Tuttavia, il modulo è installato (cioè, posso eseguire una shell pitone interattivo, e digitare tale linea esatta senza ImportError), e la directory contenente il modulo è in PYTHONPATH. Ma quando ho accedere a qualsiasi pagina in un browser, in qualche modo non può trovare il modulo, e getta l'ImportError. Quale potrebbe essere la causa?
Soluzione
Si può importare elementtree
all'interno del guscio django:
python manage.py shell
Supponendo di avere più versioni di pitone e non si sa quale viene utilizzato per eseguire il sito, aggiungere il seguente alla visualizzazione e spingere python_ver
al modello, che vi mostrerà la versione di Python che si sta utilizzando:
import sys
python_ver = sys.version
È inoltre possibile aggiungere in modo esplicito il percorso ElementTree programatically nella vostra settings.py
:
import sys
sys.path.append('path to where elementtree resides')
Altri suggerimenti
Ho anche incorrere in problemi di cross-platform in cui ElementTree era disponibile da diversi moduli su sistemi diversi ... questo ha finito per lavorare per me:
try:
import elementtree.ElementTree as ET
except:
import xml.etree.ElementTree as ET
può o non può aiutare per te ...
Andate nella directory di installazione
Esempio:
c: \ Python26 \ lib \ site-packages
E verificare se entrambi elementtree e Django sono lì.
Se sono entrambi non ci sono, allora probabilmente avete più directory di installazione per diverse versioni di Python.
In ogni caso, è possibile risolvere il problema eseguendo questo comando:
python setup.py install
Esegui due volte, una volta dentro il download per Django e una volta dentro il download per elementtree. Sarà installare entrambi i download in qualunque vostro attuale pitone di default è.
References: