Я пытаюсь установить пакет importlib
с помощью pip3
, но получаю сообщение об ошибке «Невозможно выполнить setup.py, так как setuptools недоступен в среде сборки». Как я могу исправить эту ошибку и успешно установить пакет importlib?
mrichardsonr1@penguin:~$ pip3 install importlib
Defaulting to user installation because normal site-packages is not writeable
Collecting importlib
Using cached importlib-1.0.4.zip (7.1 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [1 lines of output]
ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.
[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, setuptools, обновил все, переустановил все, ничего не работает. Я запускаю это в контейнере Linux x86_64 на ChromeOS. Я использую последнюю версию setuptools
, что, как мне сказали, может быть причиной этого.
mrichardsonr1@penguin:~$ pip3 install setuptools
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: setuptools in ./.local/lib/python3.9/site-packages (65.6.3)
Насколько я знаю, все остальное в курсе. Не знаю, почему я получаю эту ошибку, и не только при установке этого пакета у меня была такая же проблема, когда я пытался установить пакет ping
.
https://pypi.org/project/importlib/
Установочный пакет importlib
предназначен только для Python 2.7, его нельзя установить с помощью pip3
.
В Python 3 importlib
стал пакетом из стандартной библиотеки: https://docs.python.org/3/library/importlib.html. Вам не нужно устанавливать его отдельно; после того, как вы установили Python3 и стандартную библиотеку, пакет доступен для импорта. Чтобы проверить из командной строки:
$ python3 -c "import importlib"
Кажется, это сработало, но у меня все еще есть проблемы с запуском Cura с тегом --no-sandbox
mrichardsonr1./cura.AppImage --no-sandbox PyInstaller/loader/pyimod02_importers.py:499: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
Он просто говорит об этом, а затем ничего не происходит. Я хотел бы сказать, что то, что вы сказали, похоже, сделало «что-то», потому что ошибок не было, но это не дало результата: mrichardsonr1@penguin:~$ python3 -c "import importlib" mrichardsonr1@penguin:~$
@OrbitalMartian 1. python3 -c "import importlib"
не должен производить вывод; это показывает, что ошибки/исключения нет; чтобы получить отладочный вывод, вы можете сделать ` python3 -c "import importlib; print(importlib)"` 2. "Предупреждение об устаревании: модуль imp устарел..." - это просто предупреждение; хотя мой совет - исправить приложение (если это ваш код) или сообщить об этом авторам (если это не так).
Запустив python3 -c "import importlib" и попытавшись установить библиотеку ping, я получил эту ошибку: Collecting ping Using cached ping-0.2.tar.gz (10 kB) Preparing metadata (setup.py) ... error error: subprocess-exited-with-error × python setup.py egg_info did not run successfully. │ exit code: 1 ╰─> [9 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-lb8bdn1p/ping_c43c1b90fca74c33bbfdd4634e424644/setup.py", line 23, in <module>
@OrbitalMartian Это совсем другой вопрос, его нужно задавать отдельно. Но сначала попробуйте поискать.
Я знаю, что это так, но я не пытаюсь найти решение для ping
здесь я просто показываю пример, что setuptools
все еще не работает. Запуск python3 -c "import importlib; print(importlib)"
дает: mrichardsonr1@penguin:~$ python3 -c "import importlib; print(importlib)" <module 'importlib' from '/usr/lib/python3.9/importlib/__init__.py'>
А что касается приложения, это слайсер для 3D-печати, полностью поддерживаемый Linux.
@OrbitalMartian Я не вижу, что это связано с вопросом. Пожалуйста, создайте новый вопрос и покажите всю трассировку в отформатированном виде. Для полного сообщения об ошибке попробуйте pip install -vvv ping
Спасибо за начало. Я уверен, что скоро пойму, что не так!
это может помочь - github.com/pypa/packaging-problems/issues/573