web-dev-qa-db-fra.com

ImportError: aucun module nommé lxml - même si LXML est installé

Je reçois cette erreur "ImportError: No module named lxml "Même si LXML est définitivement installé. Plus précisément, il est installé dans le python Virtualenv pour le projet. Et finalement je travaille sur le API produit Python/Amazon . J'obtiens l'erreur après avoir essayé d'exécuter l'un des exemples de scripts pour ce projet à partir du terminal (mac).

Comment puis-je résoudre ce problème? ou poursuivre le problème?

La recherche Google m'a conduit à:

  • Reintsall LXML
  • Assurez-vous que la licence Xcode a été acceptée: Sudo xcodebuild -license
  • Mise à jour de LXML avec: pip install --upgrade lxml Actuellement au ver 3.4.0
  • les dépendances LXML réinstallées comme indiqué ici - pip install libxml2-dev libxslt-dev python-dev

Edit: Plus de détails La ligne de code générant l'erreur est from lxml import etree, objectify, c'est dans un dossier loin de l'endroit où LXML est installé dans mon environnement virtuel (bien que j'exécute le script depuis mon virtualenv dans le terminal). Si le problème est simplement dû au fait que le script ne sait pas où trouver l'installation de LXML, comment puis-je résoudre ce problème?

12
Michael Romrell

Il s'avère que j'ai trouvé ma réponse ici: l'importation lxml échoue sur OSX après une installation (apparemment) réussie

Apparemment, l'installation de LXML sur un Mac finit par l'installer dans le mauvais chemin, vous devez donc réinitialiser le chemin à l'aide de: export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}"

8
Michael Romrell

Il s'avère donc que si vous utilisez python via homebrew, les choses deviennent un peu sommaires avec des applications comme Inkscape qui ont codé en dur dans leur esprit qu'une certaine version de python est nécessaire.

Obtenir la bonne python consistait simplement à désinstaller brew et à installer PIP:

brew uninstall --ignore-dependencies python

Sudo easy_install pip

STATIC_DEPS=true Sudo pip install lxml

3
Andrew Lazarus

si votre python est python 3.6, essayez pip3.6 install lxml

1
jerome wong