#python #python-2.7 #pip #can-bus
#python #python-2.7 #pip #can-bus
Вопрос:
Всякий раз, когда я пытаюсь pip установить cantools == 34.0.0 (на python 2.7), я получаю сообщение об ошибке:
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support
in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Collecting cantools==34.0.0
Using cached cantools-34.0.0-py2.py3-none-any.whl (77 kB)
Collecting diskcache
Using cached diskcache-5.0.2.tar.gz (47 kB)
ERROR: Command errored out with exit status 1:
command: 'c:venvscriptspython.exe' -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'c:\users\bla\appdata\local\temp\pip-install-4or8zd\diskcache\setup.py'"'"'; __file__='"'"'c:\
users\bla\appdata\local\temp\pip-install-4or8zd\diskcache\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'rn'"'"', '"'"'n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"
'"'))' egg_info --egg-base 'c:usersblaappdatalocaltemppip-pip-egg-info-mxhtc0'
cwd: c:usersblaappdatalocaltemppip-install-4or8zddiskcache
Complete output (10 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:usersblaappdatalocaltemppip-install-4or8zddiskcachesetup.py", line 5, in <module>
import diskcache
File "diskcache__init__.py", line 9, in <module>
from .core import (
File "diskcachecore.py", line 434
raise ValueError('disk must subclass diskcache.Disk') from None
^
SyntaxError: invalid syntax
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Кто-нибудь, пожалуйста, может мне помочь? Похоже, что это происходит, когда он пытается установить пакет diskcache
Комментарии:
1. Можете ли вы использовать Python3 вместо этого? В наши дни это действительно лучший способ, особенно с тех пор, как Python2 перешел на EOL. Я только что протестировал, и обе версии 34 и 35 «cantools» успешно установлены в Py3.7 и Py3.8.
2. Согласно документам cantools : «Поддержка Python 2 устарела, поскольку Python 3 имеет лучшую поддержку unicode».
3. @Gary02127 К сожалению, нет, это какой-то устаревший код, который все еще использует python 2, это работает на другом компьютере, но я не могу установить пакет на свой компьютер
4. @MauriceMeyer Это правда, но установка должна быть возможна до версии 34.3.0 github.com/eerimoq/cantools/commits/master на python2.7
5. Да, но diskcache setup.py написан для Python3.
Ответ №1:
Я исправил это, проблема заключалась в установке модуля diskcache, по умолчанию он пытался установить поддерживаемую версию python 3, когда я установил ее вручную pip install diskcache==4.1.0
, а затем снова установил cantools, это сработало.