«/lib/python2.7/site-packages/ НЕ поддерживает .pth файлы», устанавливающий pip на MacOS - PullRequest
0 голосов
/ 30 апреля 2018

Я столкнулся с некоторыми проблемами при использовании pip на моем Mac и вообще удалил его.

Теперь, когда я пытаюсь переустановить его, под управлением $sudo easy_install pip я получаю:

TEST FAILED: /lib/python2.7/site-packages/ does NOT support .pth files
error: bad install directory or PYTHONPATH

You are attempting to install a package to a directory that is not
on PYTHONPATH and which Python does not read ".pth" files from.  The
installation directory you specified (via --install-dir, --prefix, or
the distutils default setting) was:

    /lib/python2.7/site-packages/

and your PYTHONPATH environment variable currently contains:

    ''

[этот вставленный вывод сокращен для краткости]


Я попытался добавить указанный каталог (/lib/python2.7/site-packages/) в мой pythonpath, используя ./profile и ./bash_profile, но ни один из них не влияет на переменную sys.path, когда я запускаю python, который включает в себя только

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/Library/Python/2.7/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC

Моя проблема в том, что у меня установлены две версии python (в двух указанных каталогах)?

Или это мой pythonpath облажался так, что я не смог исправить?


Edit:

$ which python возврат /usr/bin/python

и $ which easy_install возвращает /usr/bin/easy_install

Ответы [ 2 ]

0 голосов
/ 30 апреля 2018

Хотя у меня нет точного ответа, я могу заполнить некоторые пробелы для вас.

Ваш sys.path не показывает две установленные версии Python, он показывает одну установленную в соответствии с немного странным способом, которым Apple устанавливает Python 2.

Каталоги под /System/Library/Frameworks/Python.framework/Versions/2.7/ - это библиотеки и модули для вашего Python. Так как каталоги /System/Library/ «защищены» на Mac, их нельзя записать с активным SIP, поэтому Apple предоставляет каталог /Library/Python/2.7/site-packages, в который устанавливаются пакеты Python, такие как pip.

В моей системе sudo /usr/bin/easy_install pip выполняет установку в /Library/Python/2.7/site-packages/.

Поскольку ваш pip не запускается, следующий шаг, который я хотел бы предложить, это посмотреть, можете ли вы загрузить его из стандартной библиотеки - sudo python -m ensurepip --default-pip. Если это не сработает, вы можете найти инструкции по его запуску здесь .

0 голосов
/ 30 апреля 2018

Я понял это.

Когда я попытался установить python2 через brew, то запустил brew doctor Я получил следующее предупреждение.

Warning: A .pydistutils.cfg file was found in $HOME, which may cause Python
builds to fail. See:
  https://bugs.python.org/issue6138
  https://bugs.python.org/issue4655

Конечно, когда я удалил .pydistutils.cfg, проблема прояснилась.


FWIW, вот SO вопрос, который заставил меня создать файл для начала:

Объединение --user с ошибкой --prefix с установкой setup.py

(В ответе там упоминается, что это может привести к непредвиденным последствиям. Я просто полагаю, что ссылки на него могут помочь в поиске видимости для тех, кто в настоящее время сталкивается с той же проблемой, что и я, но забыл, что они создали этот файл.)

...