#python-3.x #pip
Вопрос:
Я установил python 3.9 через homebrew в своей системе macOS Big Sur. Чтобы заставить pip3 работать, я попытался использовать модуль ensurepip:
python3 -m ensurepip
Который затем преуспевает (по-видимому):
Successfully installed pip-21.2.4 setuptools-57.4.0
Но, когда я пытаюсь запустить pip3, он не может найти модуль pip:
$ python3 -m pip
/usr/local/opt/python@3.9/bin/python3.9: No module named pip
Я вижу, что модуль pip действительно был установлен в этом каталоге:
/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip
Но, когда я запускаю python3, я вижу это:
>>> import sys
>>> sys.path
['', '/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python39.zip', '/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9', '/usr/local/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/lib/python3.9/lib-dynload', '/usr/local/lib/python3.9/site-packages']
Итак, почему вы python3 -m ensurepip
решили установить модуль pip в каталог, в котором он на самом деле не ищет модули? И что еще более важно, как мне это исправить?
Ответ №1:
Я все понял. Установка homebrew для python3 не была завершена должным образом из-за печально /usr/local
известной проблемы с разрешениями в macOS. Таким образом, шаг после установки не был запущен для python3, который настраивает pip3 и т. Д. Из-за этого модуль ensurepip установил pip в каталог, которого не было в пути поиска модуля python3.
Итак, я исправил проблемы с владением /usr/local
для homebrew (хотя я не уверен, почему это все еще не работает должным образом из коробки).
Затем, когда я вернулся, чтобы запустить postinstall, он потерпел неудачу, ничего мне не сказав. Итак, я использовал эту --debug
опцию и увидел, что она была сердита, потому что каталог пакетов сайтов не был пуст (из-за моей предыдущей установки pip с использованием securepip). Итак, я стер этот каталог rm -rf
и повторно запустил установку после установки. А потом это сработало.