Подтвердить что ты не робот

Я получаю ошибку в python3 при импорте механизации

Я получаю ошибку в python3 при импорте mechanize.

Я только что установил механизацию в свой virtualenv, где установлен python3.

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

$ pip freeze
mechanize==0.2.5

Но когда я пытаюсь импортировать механизацию в свой код python, я получаю эту ошибку.

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'

Кто-нибудь знает, как решить эту проблему?

Я новичок в python, и сейчас изучаю, как программировать на python.

Спасибо за вашу помощь заранее!

Обновление

Я установил механизацию для python3. Теперь у меня есть еще одна ошибка.

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

Я проверил, что я установил в своем рабочем виртуальном сервере. Я нашел несколько предупреждений.

$ 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
4b9b3361

Ответ 1

Увы, механизация не поддерживает Python 3. http://wwwsearch.sourceforge.net/mechanize/faq.html

Python 2.4, 2.5, 2.6 или 2.7. Python 3 еще не поддерживается.

Вам может понравиться прокомментировать эту проблему на https://github.com/jjlee/mechanize/issues/96


Обновление: я написал собственную автоматическую библиотеку MechanicalSoup. Он совместим с Python 3 https://github.com/hickford/MechanicalSoup

Ответ 2

Модуль MechanicalSoup объединил Mechanical и BeautifulSoup в той же Библиотеке и может использоваться с Python 2.6 до 3.4.

в командной строке установите MechanicalSoup:

pip install MechanicalSoup

Затем импортируйте в python,

import mechanicalsoup # Don’t forget to import the new module

Ответ 3

Я думаю, что вы, возможно, установили версию механизации Python 2, а новая семантика импорта Python 3 разбивает старый код Python 2. Быстрый поиск, и кажется, что поддержка Python 3 для механизации все еще немного слаба. Однако я нашел ветвь Python 3.

Вы можете попробовать вручную установить из исходного кода, с которым я связан. После того, как вы загрузили исходный код, измените каталог, чтобы вы попали в каталог механизации. Затем введите $python3 setup.py install в терминал.