Не удалось установить пакеты из-за ошибки EnvironmentError: [Errno 13]

96

В моем терминале MacOS Mojave я хотел установить пакет python с помощью pip. В конце говорится:

You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Итак, я хотел обновить pip с помощью данной команды, но получил ошибку:

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 
'/Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/EGG-INFO/PKG-INFO'
Consider using the `--user` option or check the permissions.

Я не очень понимаю, что мне теперь делать. Также я понял, что в сообщении об ошибке написано Python 2.7, но у меня есть и хочу использовать только Python 3.

Адлер
источник
6
Вы читали: «Рассмотрите возможность использования этой --userопции или проверьте разрешения»?
Клаус Д.
Я только что попробовал, вы правы! Я думал, что он будет ПРОВЕРИТЬ разрешения, а не ДАВАТЬ разрешения. Спасибо!
Адлер
2
Чтобы установить пакеты для python3, вам нужно использовать pip3. Чтобы обновить pip, просто запустите sudo, если вы столкнетесь с ошибками разрешений.
BoboDarph
Возможный дубликат pip install -r: OSError: [Errno 13] Permission denied
phd

Ответы:

148

Если вы хотите использовать python3 + для установки пакетов, которые вам нужныpip3 install package_name

И чтобы решить ошибку 13, вам нужно добавить --userв конце

pip3 install package_name --user

РЕДАКТИРОВАТЬ:

Для любого проекта на Python настоятельно рекомендуется работать в виртуальной среде , это инструмент, который помогает разделять зависимости, необходимые для разных проектов, путем создания для них изолированных виртуальных сред Python.

Чтобы создать его с помощью python3 +, вы должны использовать следующую команду:

virtualenv enviroment_name -p python3

А затем вы работаете над этим, просто активировав его:

source enviroment_name/bin/activate

После активации виртуальной среды имя вашей виртуальной среды появится на левой стороне терминала. Это даст вам знать, что виртуальная среда в настоящее время активна. Теперь вы можете установить зависимости, связанные с проектом в этой виртуальной среде, просто используя pip.

pip install package_name
Гонсало Гарсия
источник
2
Я сделал это, но проблема не исчезла. Я установил колбу, но ее все еще нет в моем venv. Что я могу сделать?
Леонард
Попробуйте virtualenv -p python3.8 enviroment_name Использование: virtualenv [ОПЦИИ] DEST_DIR
Томми Гиббонс,
1
Прекрасно работает. Спасибо!
Хаардик Дхарма
22

Что касается команды разрешений, попробуйте использовать sudo перед командой терминала:

sudo pip install --upgrade pip

Sudo - это программа, которая позволяет запускать команду с привилегиями суперпользователя.

Что касается python Попробуйте запустить pip как исполняемый файл, например:

python3.6 -m pip install <package>
Доминик Поль
источник
5

Я делал те же ошибки, когда понял, что создал свою виртуальную среду как пользователь root. Он был защищен от записи, поэтому проверьте, защищена ли ваша виртуальная среда от записи. сделай новый венв и попробуй еще раз

Шитала Прасад Тивари
источник
4

У меня такая же ошибка, когда я пытался установить пакет (flask-classful).
Я сделал ошибку, установив анаконду как root. Я сменил владельца установленной папки anaconda и смог успешно установить пакет.

Используйте команду chownс опцией, -Rчтобы рекурсивно изменить владельца установленной папки anaconda следующим образом:

chown -R owner:group /path/to/anaconda

Здесь владелец - это ваше имя пользователя, а группа - это имя группы.

шерминатор35
источник
3

Для MacOs и Unix

Просто добавив sudo в команду, она будет работать, как суперпользователь.

sudo pip install --upgrade pip

Однако рекомендуется не делать этого напрямую - см. Этот пост

Рохит Кумар
источник
Это совершенно бесполезно для пользователей Windows, и эта ошибка чаще встречается у пользователей Windows из-за операционных разрешений Windows. Кроме того, команды должны быть заключены в блоки кода,
иначе
2

Ответ находится в сообщении об ошибке. Раньше вы или какой-либо процесс выполняли sudo pipи, в результате, некоторые из подкаталогов /Library/Python/2.7/site-packages/...имели разрешения, которые делали его недоступным для вашего текущего пользователя.

Затем вы сделали, pip install whateverчто полагается на другое.

Итак, чтобы исправить это, посетите /Library/Python/2.7/site-packages / ... и найдите каталог с правами root или not-your-user и либо удалите, а затем переустановите эти пакеты, либо просто установите право владения пользователем. к кому должен иметь доступ.

Эрик Лещинский
источник
простой и рабочий. используйте $ whoami, чтобы узнать, каким пользователем вы сейчас являетесь, тогда $ sudo chown username /Library/Python/2.7/site-packages/ затем pip install something ... Возможно, вам придется использовать chown рекурсивно
Сунил Кумар
2

У меня была такая же проблема при установке numpyс помощью pip install numpy.

Потом я попробовал

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

У меня это сработало.

Объяснение: Параметр -H(HOME) с sudoустанавливает переменную среды HOME в домашний каталог целевого пользователя (по умолчанию root). По умолчанию sudo не изменяет HOME.

Гений
источник
1

Я уже пробовал все предложения, размещенные здесь, но все еще получаю errno 13,

Я использую Windows, и моя версия Python - 3.7.3

После 5 часов попыток решить этот шаг у меня сработал:

Я пытаюсь открыть командную строку от имени администратора

nrmzmh
источник
0

У меня тоже была такая же проблема, я пробовал много разных командных строк, у меня работала эта:

Пытаться:

    conda install py-xgboost

Вот что у меня получилось:

Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/simplonco/anaconda3

  added / updated specs:
    - py-xgboost


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _py-xgboost-mutex-2.0      |            cpu_0           9 KB
    ca-certificates-2019.1.23  |                0         126 KB
    certifi-2018.11.29         |           py37_0         146 KB
    conda-4.6.2                |           py37_0         1.7 MB
    libxgboost-0.80            |       he6710b0_0         3.7 MB
    mkl-2019.1                 |              144       204.6 MB
    mkl_fft-1.0.10             |   py37ha843d7b_0         169 KB
    mkl_random-1.0.2           |   py37hd81dba3_0         405 KB
    numpy-1.15.4               |   py37h7e9f1db_0          47 KB
    numpy-base-1.15.4          |   py37hde5b4d6_0         4.2 MB
    py-xgboost-0.80            |   py37he6710b0_0         1.7 MB
    scikit-learn-0.20.2        |   py37hd81dba3_0         5.7 MB
    scipy-1.2.0                |   py37h7c811a0_0        17.7 MB
    ------------------------------------------------------------
                                           Total:       240.0 MB

The following NEW packages will be INSTALLED:

  _py-xgboost-mutex  pkgs/main/linux-64::_py-xgboost-mutex-2.0-cpu_0
  libxgboost         pkgs/main/linux-64::libxgboost-0.80-he6710b0_0
  py-xgboost         pkgs/main/linux-64::py-xgboost-0.80-py37he6710b0_0

The following packages will be UPDATED:

  ca-certificates     anaconda::ca-certificates-2018.12.5-0 --> pkgs/main::ca-certificates-2019.1.23-0
  mkl                                            2019.0-118 --> 2019.1-144
  mkl_fft                              1.0.4-py37h4414c95_1 --> 1.0.10-py37ha843d7b_0
  mkl_random                           1.0.1-py37h4414c95_1 --> 1.0.2-py37hd81dba3_0
  numpy                               1.15.1-py37h1d66e8a_0 --> 1.15.4-py37h7e9f1db_0
  numpy-base                          1.15.1-py37h81de0dd_0 --> 1.15.4-py37hde5b4d6_0
  scikit-learn                        0.19.2-py37h4989274_0 --> 0.20.2-py37hd81dba3_0
  scipy                                1.1.0-py37hfa4b5c9_1 --> 1.2.0-py37h7c811a0_0

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi                                          anaconda --> pkgs/main
  conda                                            anaconda --> pkgs/main
  openssl                anaconda::openssl-1.1.1-h7b6447c_0 --> pkgs/main::openssl-1.1.1a-h7b6447c_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
libxgboost-0.80      | 3.7 MB    | ##################################### | 100% 
mkl_random-1.0.2     | 405 KB    | ##################################### | 100% 
certifi-2018.11.29   | 146 KB    | ##################################### | 100% 
ca-certificates-2019 | 126 KB    | ##################################### | 100% 
conda-4.6.2          | 1.7 MB    | ##################################### | 100% 
mkl-2019.1           | 204.6 MB  | ##################################### | 100% 
mkl_fft-1.0.10       | 169 KB    | ##################################### | 100% 
numpy-1.15.4         | 47 KB     | ##################################### | 100% 
scipy-1.2.0          | 17.7 MB   | ##################################### | 100% 
scikit-learn-0.20.2  | 5.7 MB    | ##################################### | 100% 
py-xgboost-0.80      | 1.7 MB    | ##################################### | 100% 
_py-xgboost-mutex-2. | 9 KB      | ##################################### | 100% 
numpy-base-1.15.4    | 4.2 MB    | ##################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Psybelo
источник
0

попробуйте эту командную строку ниже для MacOS, чтобы проверить разрешение пользователя.

$ sudo python -m pip install --user --upgrade pip
Ан Нгуен
источник
0

У меня установлена ​​анаконда для Python 3. У меня также есть Python2 на моем Mac.

python --version

дает мне

Python 3.7.3

python2.7 --version

дает мне

Python 2.7.10

Я хотел установить пакет pyspark в python2, учитывая, что он уже установлен в python3.

python2.7 -m pip install pyspark

дает мне ошибку

Не удалось установить пакеты из-за ошибки EnvironmentError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/pyspark' Рассмотрите возможность использования этой --userопции или проверьте разрешения.

Следующая команда решила это. Слава богу, мне не пришлось менять конфигурацию.

python2.7 -m pip install pyspark --user

Сбор pyspark Требование уже выполнено: py4j == 0.10.7 в /Library/Python/2.7/site-packages (из pyspark) (0.10.7) Установка собранных пакетов: pyspark Успешно установлен pyspark-2.4.4 Вы используете версию pip 18.1 , однако доступна версия 19.3.1. Вам следует рассмотреть возможность обновления с помощью команды pip install --upgrade pip.

karthi190
источник
0

У меня была аналогичная проблема с venv на смонтированном разделе NTFS в Linux со всеми необходимыми разрешениями. Убедившись, что pip работал с --ignore-installed, решил это, то есть:

python -m pip install --upgrade --ignore-installed

Элиг
источник
0

На Mac нет 3.7каталога или каталог 3.7принадлежит root. Итак, я удалил этот каталог, создал новый каталог для текущего пользователя и переместил его туда. После этого установка завершится без ошибок.

sudo rm -rf /Library/Python/3.7
mkdir 3.7
sudo mv 3.7 /Library/Python
ll /Library/Python/
pip3 install numpy
zhongxiao37
источник
0

Это также происходит со мной, когда я пытаюсь установить opencv-pythonпакет:

попытка установки

Я могу исправить это с помощью командной строки

python3 -m pip install {name of package} --user

Когда я пытаюсь установить указанный пакет, команда становится:

python3 -m pip install opencv-python --user

В результате:

результат

Ашади Седана Пратама
источник