встановлення pip: перевірте дозволи та власника цього каталогу


155

Під час встановлення pip та python я зіткнувся із записом:

Поточний користувач не належить до каталогу "/ Користувачі / Партенон / Бібліотека / Журнали / Пі" або його батьківському каталогу, а журнал налагодження відключений. Перевірте дозволи та власника цього каталогу. Якщо виконується піп з судо, вам може знадобитися прапор -H.

тому що зараз мені доведеться встановити користування sudo.

У мене на Mac було вже встановлено python і кілька бібліотек, я працюю на Yosemite. Нещодавно мені довелося зробити чисте протирання, а потім перевстановити ОС. Тепер я отримую це підказку, і у мене виникають труднощі з'ясувати, як це змінити

До мого командного рядка Parthenon$зараз це булоPhilips-MBP:~ Parthenon$

Я єдиний власник цього комп’ютера, і це єдиний обліковий запис на ньому. Це, здається, є проблемою при переході на python 3.4, здається, що ніщо не знаходиться в потрібному місці, virtualenv не збирається там, де я цього очікую і т.д.


Ім'я вашого рахунку Філіп?
komaromy

Я щойно помітив це, коли вчора використовував pip на своїй машині, що ти маєш на увазі під virtualenv, не йдеш там, де ти цього очікуєш?
Padraic Cunningham

Я встановив Python 3.4 на свою машину, але коли я запускаю python в своєму терміналі, він все ще працює 2,7 навіть після проходження всього процесу встановлення. Я лише згадав virtualenv, тому що, як правило, сподіваюся знайти його в Library / Python / 3.4, але немає Бібліотеки / Python / 3.4
Phil Andrews

вам потрібно використовувати щось на зразок python3 або python3.4, щоб використовувати інтерпретатор python3, елементи, які знову відкриваються, є лише налаштуванням, ubuntu має той самий варіант.
Падраїк Каннінгем

@PadraicCunningham Ви отримуєте таку ж проблему з піп? Ви нещодавно оновили до Yosemite?
Філ Ендрюс

Відповіді:


127

Я також побачив цю зміну на своєму Mac, коли я перейшов з бігу pipдо sudo pip. Додавання -Hдо судо викликає, що повідомлення проходить для мене. Напр

sudo -H pip install foo

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

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

Я підозрюю, що це якась недавня зміна піп. Я зараз запускаю його, sudo -Hщоб обійтись.


18
Зверніть увагу, що використовувати sudo pipабсолютно неправильно. Для отримання додаткової інформації , будь ласка , дивіться тут stackoverflow.com/questions/33004708 / ...
Мікко Ohtamaa

У мене була така ж проблема, але так, тепер мені доведеться встановити, використовуючи прапор "-H".
Малахій Базар

62

Проблема тут полягає в тому, що ви якось встановились у 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


Pip як і раніше пише з помилкою. У мене також є подібне попередження, і мої дозволи є правильними, ОП насправді не використовує virtualenv, тому було б сенс, що для встановлення пакетів в усьому світі знадобиться sudo.
Падраїк Каннінгем

1
@PadraicCunningham: Якщо Pip видає помилку, що ваші дозволи невірні, будь ласка, покажіть свої файлові дозволи, щоб ми могли з'ясувати, що з ними не так. Інакше допомогти було б пострілом у темряві.
Мікко Охтамаа

Також я пропоную вам відкрити ще одне питання, оскільки ваше питання може відрізнятися від того, що має оригінальний автор
Мікко Отамаа

Використовуючи власне ім’я користувача, я отримав помилку: Вхід: sudo chown -R USERNAME / Користувачі / USERNAME / Бібліотека / Журнали / pip Вихід: chown: / Користувачі / USERNAME / Бібліотека / Журнали / pip: Немає такого файлу чи каталогу
user2755660

61

pip install --user <package name> (Судо не потрібно) працював у мене для дуже подібної проблеми.


Ви повинні встановити принаймні одну вимогу для встановлення (див. "Довідка щодо встановлення файлів")
Амір

0

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

  • система: 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/

коли я побачив це, я зрозумів, що makedirs - це дія запису, але в режимі запитів, у якому відображається drwxrwxr-xлише користувацький корінь, можна записати файл запитів. Якщо додати whoamiв групове колесо yutou ( ), і змінити пакет, щоб колесо групи могло писати, я можу писати, і проблема вирішена.

Як додати юту до групового колеса? + виявити групове колесо sudo dscl . -list /groups GroupMembership, ви знайдете:

wheel                    root

групове колесо лише з одним коренем члена. + Додати yutou до групи колеса, 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

0

Якщо ви змінили змінну $ PATH, це також може спричинити проблему. Якщо ви думаєте, що це може бути проблемою, перевірте свій ~ / .bash_profile або ~ / .bashrc

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.