Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

I get an error in python3 when importing mechanize

I get an error in python3 when importing mechanize.

I've just installed mechanize into my virtualenv where python3 is installed.

$ which python3
/Users/myname/.virtualenvs/python3/bin/python3

$ pip freeze
mechanize==0.2.5

But, when I try to import mechanize in my python code, I get this 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'

Does anyone know how to fix this problem?

I'm new to python and I've been studying how to program in python these days.

Thanks for your help in advance!

update

I've installed mechanize for python3. Now, I have an another 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

I checked what I've installed in my working virtualenv. I found some warnings.

$ 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
like image 705
crzyonez777 Avatar asked Mar 05 '14 06:03

crzyonez777


People also ask

Does mechanize work with Python 3?

unfortunately mechanize only works with Python 2.4, Python 2.5, Python 2.6, and Python 2.7.

How do I install mechanize?

To install for development: git clone https://github.com/python-mechanize/mechanize.git cd mechanize pip3 install -e . To install manually, simply add the mechanize sub-directory somewhere on your PYTHONPATH .


2 Answers

Alas, mechanize doesn't support Python 3. http://wwwsearch.sourceforge.net/mechanize/faq.html

Python 2.4, 2.5, 2.6, or 2.7. Python 3 is not yet supported.

You might like to comment on the issue at https://github.com/jjlee/mechanize/issues/96


Update: I wrote my own automating library MechanicalSoup. It's Python 3 compatible https://github.com/hickford/MechanicalSoup

like image 172
Colonel Panic Avatar answered Sep 30 '22 03:09

Colonel Panic


The module MechanicalSoup merged Mechanical and BeautifulSoup in the same Library and can be used since Python 2.6 through 3.4.

in command prompt install MechanicalSoup:

pip install MechanicalSoup

Then import in python,

import mechanicalsoup # Don’t forget to import the new module
like image 31
Ashna Talati Avatar answered Sep 30 '22 02:09

Ashna Talati