Привет, я пытаюсь установить пакет grpc
Python через pip. На самом деле он предназначен для установки с помощью сценария сборки для другой установки, которую я выполняю, но сценарий продолжал давать сбой, поэтому я решил сделать это сам.
Вот что я получаю:
❯ pip3 install grpc
Defaulting to user installation because normal site-packages is not writeable
Collecting grpc
Using cached grpc-1.0.0.tar.gz (5.2 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [6 lines of output]
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-install-_au3535m/grpc_0b2b1ce7560943288874cf94aa72394a/setup.py", line 33, in <module>
raise RuntimeError(HINT)
RuntimeError: Please install the official package with: pip install grpcio
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Я попробовал следовать подсказке:
pip install grpcio
и всё прошло без проблем. Я также посетил множество форумов, выполнив поиск по ключевым словам: «setup.py egg_info не был выполнен успешно», и все предлагали сделать:
pip install --upgrade pip
pip install --upgrade setuptools
Я попробовал оба и вот что у меня получилось:
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: pip in /home/utl/.local/lib/python3.10/site-packages (24.0)
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (69.5.1)
И все же, когда я потом запускаю pip install grpc
, это не работает, и я получаю ту же ошибку, что и раньше. Я уже довольно давно борюсь со сценарием сборки, поэтому буду очень благодарен за любую помощь.
Вы не можете (и не должны пытаться) установить пакет grpc PyPI, потому что это всего лишь заглушка, которая предлагает вместо этого установить grpcio
.
Пакет grpcio PyPI предоставляет пакет grpc
Python:
# pip install grpcio
Collecting grpcio
Successfully installed grpcio-1.63.0
# python
Python 3.12.1 (main, Jan 17 2024, 06:18:08) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import grpc
>>> grpc
<module 'grpc' from '/usr/local/lib/python3.12/site-packages/grpc/__init__.py'>
>>>
Если у вас есть сценарий сборки, который пытается установить grpc
, значит, этот сценарий сломан и/или устарел.
@nigh_anxiety Мм, ну grpcio==1.41.1
(с 2021 года) устанавливается и на Python 2.7.
Более того, я считаю, что
grpc
— это версия пакета для Python 2, и она была намеренно заменена наgrpcio
для Python 3.