Pip install: проверьте разрешения и владельца этого каталога
При установке pip и python я столкнулся с тем, что говорит:
Каталог '/Users/Parthenon/Library/Logs/pi' или его родительский каталог не принадлежит текущему пользователю, и журнал отладки отключен. Проверьте разрешения и владельца этого каталога. Если вы выполняете pip с помощью sudo, вам может понадобиться флаг -H.
потому что теперь мне нужно установить с помощью sudo
.
У меня был python и несколько библиотек, уже установленных на моем Mac, я запускаю Yosemite. Недавно мне пришлось сделать чистую очистку, а затем переустановить ОС. Теперь я получаю это приглашение, и мне трудно понять, как его изменить.
До того, как моя командная строка была Parthenon$
, теперь она Philips-MBP:~ Parthenon$
Я являюсь единственным владельцем этого компьютера, и это единственная учетная запись на нем. Кажется, что это проблема при обновлении до python 3.4, ничего похожего не в нужном месте, virtualenv не идет туда, где я ожидаю, и т.д.
Ответы
Ответ 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
ключ
- добавить текущий аккаунт в группу колес
sudo dscl . -append /Groups/wheel wheel $(whoami)
- изменить режим пакета 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