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
กลไกยังไม่รองรับ โปรดใช้คำขอ   -  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