2014-10-22 5 views
14

ho deciso di dare pelican una prova, ma quando corro pelican-quickstart, ottengo il seguente dialogo:errore utilizzando pellicano-quickstart "No module named html_parser"

$ pelican-quickstart 
Traceback (most recent call last): 
    File "/usr/local/bin/pelican-quickstart", line 9, in <module> 
    load_entry_point('pelican==3.4.0', 'console_scripts', 'pelican-quickstart')() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 357, in load_entry_point 
return get_distribution(dist).load_entry_point(group, name) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2394, in load_entry_point 
return ep.load() 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources.py", line 2108, in load 
entry = __import__(self.module_name, globals(),globals(), ['__name__']) 
    File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/__init__.py", line 20, in <module> 
from pelican.generators import (ArticlesGenerator, PagesGenerator, 
    File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/generators.py", line 23, in <module> 
from pelican.readers import Readers 
    File "/Library/Python/2.7/site-packages/pelican-3.4.0-py2.7.egg/pelican/readers.py", line 24, in <module> 
from six.moves.html_parser import HTMLParser 
ImportError: No module named html_parser ` 

c'era un messaggio di errore simile a this post, e poiché eseguo Python 2.7.6 su OS X 10.10 (Yosemite), potrebbe esserci un problema simile.

Qual è il modo migliore per risolvere questo problema?

+0

La risposta nel post si link dice che l'errore si verifica quando "[esegui] la versione Python 3 del codice in Python 2." – debianplebian

risposta

-3

Potrebbe essere necessario installare sei.

se si sta utilizzando pip, provare

pip install six 

e quindi riavviare pellicano-QuickStart

+1

Sei è installato - continua a ricevere lo stesso messaggio ... – alspur

+0

qual è l'output di 'pip freeze'? Si può provare a eseguire una console python e quindi digitare 'importazione six' – loutre

+0

$ pip congelare Jinja2 == 2.7.3 Markdown == 2.5.1 MarkupSafe == 0,23 Pygments == 2.0rc1 ritorto == 13.2.0 Unidecode == 0.04.16 altgraph == 0.10.2 argparse == 1.2.1 bdist-mpkg == 0.5.0 lampeggiatore == 1.3 bonjour-py == 0,3 docutils == 0,12 feedgenerator == 1.7 macholib == 1.5.1 matplotlib == 1.3.1 modulegraph == 0.10.4 numpy == 1.8.0rc1 pelican == 3.4.0 py2app == 0.7.3 – alspur

5

Questo errore sembra provenire da Python 2.7.6 su OSX. Quando installo python tramite Homebrew e reinstallo questo modulo mi sono liberato di questo errore.

$ pip uninstall pelican 
$ brew install python 
$ which python # should show /usr/local/bin/python 
$ python -V # should show Python 2.7.8 
$ pip install pelican 
10

Reinstallare Pellicano non mi aiuta, così ho fatto un po 'di difficoltà a Pelican

Le modifiche sono state fatte nel seguente file

/Library/Python/2.7/site-packages/pelican/readers.py 

alla linea 24 posto

from six.moves import html_parser 

anziché

from six.moves.html_parser import HTMLParser 

e alla linea 299

class _HTMLParser(html_parser.HTMLParser): 

invece di

class _HTMLParser(HTMLParser): 

modifica effettiva per Pelican 3.6.0, ma sembra applicabile per altre versioni se la ricerca per questo le linee nel file readers.py. Questa è solo una soluzione rapida, spero che questo problema verrà risolto dalla parte del pellicano.

3

Penso che probabilmente ci si è imbattuti nel problema di conflitto di versione nel modulo six.

Provare sudo pip install virtualenv per creare un ambiente python isolato.

inizio

  1. creare il percorso pellicano mkdir /path/to/pelican
  2. andare a /path/to/pelican e creare un ambiente pitone isolato con virtualenv venv
  3. attivare virtualenv source venv/bin/activate
  4. installare pellicano sotto l'venv (senza sudo!) pip install pelican markdown

fatto

e ora si è liberi di qualsiasi problema di cui sopra. tutte le dipendenze nel venv sono isolate dall'ambiente globale.

Per uscire dalla venv, tipo deactivate

0

stavo correndo nello stesso messaggio di errore.

six è stato anche già installato, ma una vecchia versione (1.4.1)

pip install six --upgrade

installate sei 1.10.0, che ha reso pelican-quickstart finalmente lavorare :)