Подтвердить что ты не робот

Pip install: проверьте разрешения и владельца этого каталога

При установке pip и python я столкнулся с тем, что говорит:

Каталог '/Users/Parthenon/Library/Logs/pi' или его родительский каталог не принадлежит текущему пользователю, и журнал отладки отключен. Проверьте разрешения и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам может понадобиться флаг -H.

потому что теперь мне нужно установить с помощью sudo.

У меня был python и несколько библиотек, уже установленных на моем Mac, я запускаю Yosemite. Недавно мне пришлось сделать чистую очистку, а затем переустановить ОС. Теперь я получаю это приглашение, и мне трудно понять, как его изменить.

До того, как моя командная строка была Parthenon$, теперь она Philips-MBP:~ Parthenon$

Я являюсь единственным владельцем этого компьютера, и это единственная учетная запись на нем. Кажется, что это проблема при обновлении до python 3.4, ничего похожего не в нужном месте, virtualenv не идет туда, где я ожидаю, и т.д.

4b9b3361

Ответ 1

Я также увидел это изменение на своем Mac, когда перешел с запуска pip на sudo pip. Добавление -H к sudo приводит к тому, что сообщение исчезает для меня. Э.Г.

sudo -H pip install foo

man sudo говорит мне, что -H заставляет sudo установить $HOME для целевых пользователей (в данном случае root).

Похоже, что пипс смотрит в $HOME/Library/Log, а sudo по умолчанию не устанавливает для $HOME значение /root/. Не удивительно, что ~/Library/Log принадлежит вам как пользователю, а не пользователю root.

Я подозреваю, что это недавнее изменение в пипсах. Я пока запусту его с sudo -H, чтобы обойти.

Ответ 2

pip install --user <package name> (не требуется sudo) работал у меня для очень похожей проблемы.

Ответ 3

В чем проблема, так это то, что вы каким-то образом установили в virtualenv с помощью sudo. Наверное, случайно. Это означает, что root пользователь будет переписывать данные пакета Python, делая весь файл принадлежащим root, и ваш обычный пользователь больше не сможет их записывать. Обычно virtualenv должен использоваться и использоваться только вашим обычным пользователем UNIX.

Вы можете исправить эту проблему, изменив пакет разрешений UNIX для вашего пользователя. Попробуйте:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

то pip должен иметь возможность записывать эти файлы снова.

Дополнительная информация об управлении разрешениями файлов UNIX

Ответ 4

основная информация

  • система: Mac OS 18.0.0
  • текущий пользователь: yutou

ключ

  1. добавить текущий аккаунт в группу колес
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. изменить режим пакета Python на 775.
chmod -R 775 ${this_is_your_python_package_path}

все это

  • Когда Python3 скомпилирован хорошо, информация такая же, как и в вопросе.
  • Я пытаюсь использовать pip3 install requests и получил:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • так что я cd /usr/local/python3/lib/python3.6/site-packages, затем ls -al и получил:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

когда я увидел это, я понял, что македирс - это действие записи, но в режиме запросов drwxrwxr-x выводился только пользователь root можете написать файл запросов. Если добавить yutou (whoami) к групповому колесу и изменить пакет к групповому колесу можно написать, тогда я могу написать, и проблема решена.

Как добавить ютоу в групповое колесо? + обнаружить групповое колесо, sudo dscl . -list /groups GroupMembership, вы найдете:

wheel                    root

групповое колесо только один член root. + добавить тебя в групповое колесо, sudo dscl . -append /Groups/wheel wheel yutou. + проверьте, sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

изменить режим пакета Python

chmod -R 775 /usr/local/python3/lib/python3.6

Ответ 5

Если вы изменили переменную $ PATH, это также может вызвать проблему. Если вы считаете, что это может быть проблемой, проверьте ~/.bash_profile или ~/.bashrc