Невозможно установить локальную зависимость колеса на 3.8 из pipfile, созданного с помощью 3.7 - PullRequest
0 голосов
/ 04 августа 2020

Я недавно повторно открыл скрипт, который писал более одного года go, но не смог установить все pipenv зависимости из Pipfile.

В частности, колесо python_ldap не работает (колесо в локальная папка рядом с Pipfile):

Pipfile.lock (3d2ab2) out of date, updating to (98503a)…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
 Locking...                                                                                                                                                                                             Resolving dependencies...
Success!
Updated Pipfile.lock (98503a)!
Installing dependencies from Pipfile.lock (98503a)…
An error occurred while installing ./dependencies/python_ldap-3.1.0-cp37-cp37m-win_amd64.whl --hash=sha256:41975e79406502c092732c57ef0c2c2eb318d91e8e765f81f5d4ab6c1db727c5 --hash=sha256:a424ecb9f16ab7723d570c12713dd2f3ae84c605c93ee19d6cc1c47fec61815b! Will try again.
  ================================ 9/9 - 00:00:10
Installing initially failed dependencies…
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\cli\command.py", line 232, in install
[InstallError]:       retcode = do_install(
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\core.py", line 2051, in do_install
[InstallError]:       do_init(
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\core.py", line 1306, in do_init
[InstallError]:       do_install_dependencies(
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\core.py", line 900, in do_install_dependencies
[InstallError]:       batch_install(
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\core.py", line 796, in batch_install
[InstallError]:       _cleanup_procs(procs, failed_deps_queue, retry=retry)
[InstallError]:   File "c:\program files\python38\lib\site-packages\pipenv\core.py", line 703, in _cleanup_procs
[InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
[pipenv.exceptions.InstallError]: ERROR: python_ldap-3.1.0-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
ERROR: Couldn't install package: python-ldap
 Package installation failed...
     ================================ 0/1 - 00:00:03

Pipfile

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]
python-ldap = {path = "./dependencies/python_ldap-3.1.0-cp37-cp37m-win_amd64.whl"}
requests = "~=2.0"
mysqlclient = "~=1.0"

[dev-packages]

[requires]
python_version = "3.8"

Что может быть не так? pipenv install ha был запущен из оболочки, созданной с помощью pipenv shell (которая является совершенно новой).

Скрипт был написан на Windows 7 с Python 3.7; сейчас я на Windows 10 с Python 3.8. Я бы не подумал, что это имеет значение, но понятия не имею.

ОБНОВЛЕНИЕ

Я нашел вопрос Невозможно установить numpy из формата колеса и принят anwser . Хотя предложенная там команда вызвала ошибку в моем ящике, я заметил, что, запустив команду python, я получаю:

Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32

Что мне не подходит, я использую x64 Windows 10 автомат. У меня не работает установка или что-то в этом роде?

UPDATE / 2

Я пробовал оба:

  • python_ldap-3.3.1-cp39-cp39-win_amd64.whl
  • python_ldap-3.3.1-cp39-cp39-win32.whl

, но ни один не работал, что дает:

Installing dependencies\python_ldap-3.3.1-cp39-cp39-win_amd64.whl…
Error:  An error occurred while installing dependencies\python_ldap-3.3.1-cp39-cp39-win_amd64.whl!
Error text:
ERROR: python_ldap-3.3.1-cp39-cp39-win_amd64.whl is not a supported wheel on this platform.

и:

Installing dependencies\python_ldap-3.3.1-cp39-cp39-win32.whl…
Error:  An error occurred while installing dependencies\python_ldap-3.3.1-cp39-cp39-win32.whl!
Error text:
ERROR: python_ldap-3.3.1-cp39-cp39-win32.whl is not a supported wheel on this platform.

UPDATE / 3

Наконец, python_ldap-3.3.1-cp38-cp38-win_amd64.whl сработал.

Думаю, XY в cpXY относится к версии Python и - возможно, pipenv - придирчивы и к минимальной версии, отказавшись от оригинального колеса python_ldap-3.1.0-cp37-cp37m-win_amd64.whl, потому что оно "слишком старое" для 3.8?

...