导入机制时出现ImportError: No module named '_version'

5
我通过pip安装了mechanize,但在导入该模块时遇到错误:

我通过pip安装了mechanize,但在导入该模块时遇到错误:

$ 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'

在site-packages目录中存在文件-version.py

$ 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

我漏掉了什么?

Mechanize也不再受支持,请使用requests。 - Daniel Lee
2个回答

7
如果您查看 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支持打开了一个问题,并列出了一些您可以尝试的替代方法。或者,您可以将其移植 :-).


我使用 pip3 安装了... 我在哪里可以找到 setup.py 文件? - steffen
1
我在mechanize源代码中链接了setup.pypip3仍然可以安装Python 2包。你的具体问题是相对导入,mechanize似乎在其__init__文件中使用了很多相对导入。在Python 3中,你需要明确你的导入。 - Dimitris Fasarakis Hilliard

0

对我来说没用,复制文件 _version 来使用这个命令

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

确定PAC


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接