ImportError: нет модуля с именем «_version» при импорте механизма

Я установил механизацию через pip и получаю сообщение об ошибке при импорте модуля:

$ python
Python 3.5.2 (default, Jun 28 2016, 08:46:01) 
[GCC 6.1.1 20160602] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/site-packages/mechanize/__init__.py", line 119, in <module>
    from _version import __version__
ImportError: No module named '_version'

Файл -version.py находится в каталоге site-packages:

$ ls /usr/lib/python3.5/site-packages/mechanize
_auth.py               __init__.py           _response.py
_beautifulsoup.py      _lwpcookiejar.py      _rfc3986.py
_clientcookie.py       _markupbase.py        _sgmllib_copy.py
_debug.py              _mechanize.py         _sockettimeout.py
_firefox3cookiejar.py  _mozillacookiejar.py  _testcase.py
_form.py               _msiecookiejar.py     _urllib2_fork.py
_gzip.py               _opener.py            _urllib2.py
_headersutil.py        _pullparser.py        _useragent.py
_html.py               __pycache__           _util.py
_http.py               _request.py           _version.py

Что мне не хватает?


person steffen    schedule 24.08.2016    source источник
comment
Mechanize также не поддерживается, используйте запросы   -  person Daniel Lee    schedule 24.08.2016


Ответы (2)


Если вы посмотрите на setup.py, вы увидите, что mechanize — это Python 2.x пакет:

Programming Language :: Python
Programming Language :: Python :: 2
Programming Language :: Python :: 2.4
Programming Language :: Python :: 2.5
Programming Language :: Python :: 2.6
Programming Language :: Python :: 2.7

Кроме того, вы можете видеть в mechanize/__init__.py, что все импорты являются относительными:

from _version import __version__

вместо явного:

from ._version import __version__

В python 3 это приводит к ошибкам импорта.

Для поддержки Py3 открыта проблема, в которой перечислены некоторые альтернативы, которые вы можете попробовать. Это или портировать :-).

person Dimitris Fasarakis Hilliard    schedule 24.08.2016
comment
Я установил с помощью pip3... где я могу найти файл setup.py? - person steffen; 24.08.2016
comment
Я связал setup.py в источнике для mechanize. pip3 все еще может установить пакет Python 2. Ваша конкретная проблема связана с относительным импортом здесь, mechanize, похоже, использует много из них в своем файле __init__. В Python 3 вы должны четко указать свой импорт. - person Dimitris Fasarakis Hilliard; 25.08.2016

у меня не работает, скопируйте файл _version, чтобы использовать эту команду

cp -R __version /usr/local/lib/python3.9

определить пак

person Nam.tv2312    schedule 26.07.2021