Me sale un error en python3 al importar mecanizar
python-3.x mechanize (3)
Recibo un error en python3 al importar mecanizar.
Acabo de instalar mecanizar en mi virtualenv donde está instalado python3.
$ which python3
/Users/myname/.virtualenvs/python3/bin/python3
$ pip freeze
mechanize==0.2.5
Pero, cuando intento importar mecanizar en mi código python, me sale este error.
import mechanize
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-6b82e40e2c8e> in <module>()
----> 1 import mechanize
/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize/__init__.py in <module>()
117 import sys
118
--> 119 from _version import __version__
120
121 # high-level stateful browser-style interface
ImportError: No module named ''_version''
¿Alguien sabe cómo arreglar este problema?
Soy nuevo en Python y he estado estudiando cómo programar en Python en estos días.
Gracias por su ayuda por adelantado!
actualizar
He instalado mecanizar para python3 . Ahora, tengo otro error.
In [1]: import mechanize
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-6b82e40e2c8e> in <module>()
----> 1 import mechanize
/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/__init__.py in <module>()
120
121 # high-level stateful browser-style interface
--> 122 from ._mechanize import /
123 Browser, History, /
124 BrowserStateError, LinkNotFoundError, FormNotFoundError
/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/_mechanize.py in <module>()
/Users/myname/.virtualenvs/python3/lib/python3.3/site-packages/mechanize-0.2.6.dev_20140305-py3.3.egg/mechanize/_html.py in <module>()
ImportError: cannot import name _sgmllib_copy
He comprobado lo que he instalado en mi virtualenv trabajo. He encontrado algunas advertencias.
$ pip freeze
cssselect==0.9.1
httplib2==0.8
ipython==1.1.0
lxml==3.2.4
## FIXME: could not find svn URL in dependency_links for this package:
mechanize==0.2.6.dev-20140305
pyquery==1.2.8
Warning: cannot find svn location for mechanize==0.2.6.dev-20140305
Creo que es posible que haya instalado la versión Python 2 de mecanizar, y la nueva semántica de importación de Python 3 está rompiendo el antiguo código de Python 2. Una búsqueda rápida, y parece que el soporte de Python 3 para mecanizar todavía es un poco débil. Sin embargo, encontré una rama de Python 3 .
Puedes intentar instalar manualmente desde el código fuente al que estoy vinculado. Una vez que haya descargado la fuente, cambie su directorio para que se encuentre en el directorio de mecanización. Luego ingrese $python3 setup.py install
en el terminal.
El módulo MechanicalSoup combinó Mechanical y BeautifulSoup en la misma biblioteca y se puede usar desde Python 2.6 hasta 3.4.
en el símbolo del sistema, instale MechanicalSoup:
pip install MechanicalSoup
Luego importar en python,
import mechanicalsoup # Don’t forget to import the new module
Por desgracia, mecanizar no es compatible con Python 3. http://wwwsearch.sourceforge.net/mechanize/faq.html
Python 2.4, 2.5, 2.6 o 2.7. Python 3 aún no es compatible.
Es posible que desee comentar sobre el problema en https://github.com/jjlee/mechanize/issues/96
Actualización: escribí mi propia biblioteca de automatización MechanicalSoup. Es compatible con Python 3 https://github.com/hickford/MechanicalSoup