Установка модуля Python IOError: [Errno 13] Отказано в доступе:

Я попытался установить библиотеку python openpyxl с помощью pip, набрав в терминале:

    pip install openpyxl

Но оно не было выполнено должным образом. Он выдал исключение:

    Successfully built openpyxl jdcal et-xmlfile
    Installing collected packages: jdcal, et-xmlfile, openpyxl
    Exception:
    Traceback (most recent call last):
    File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
    File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 342, in run
    prefix=options.prefix_path,
    File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 784, in install
    **kwargs
    File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 851, in install
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
    File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
    isolated=self.isolated,
    File "/Library/Python/2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
    clobber(source, lib_dir, True)
    File "/Library/Python/2.7/site-packages/pip/wheel.py", line 323, in clobber
    shutil.copyfile(srcfile, destfile)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 83, in copyfile
    with open(dst, 'wb') as fdst:
    IOError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/jdcal.py'

person Amadej Kristjan Kocbek    schedule 13.04.2017    source источник
comment
Возможный дубликат pip не может устанавливать пакеты правильно: Ошибка отказа в доступе   -  person Si Mon    schedule 23.11.2017


Ответы (4)


Лучший способ, вероятно, использовать pip install <libname> --user

Значение в вашем случае использовать pip install openpyxel --user

Это устанавливает пакет для вашего пользователя, и это безопасно. Также у вас, вероятно, есть право установить пакет для пользователя.

Ошибка разрешения, с которой вы столкнулись, является частой проблемой. Как видно здесь: pip не может правильно устанавливать пакеты: ошибка отказа в доступе и здесь ошибка: не удалось создать '/usr/local/lib/python2.7/dist-packages/virtualenv_support': разрешение отклонено

Использование команды sudo pip не считается безопасным, как описано здесь: риски запуска «sudo pip»?

person Si Mon    schedule 23.11.2017

У вашего пользователя нет прав на запись в папку установки Python.

Чтобы исправить это, запустите pip от имени пользователя root:

sudo pip install openpyxl

person fedterzi    schedule 13.04.2017

У вашей учетной записи нет прав на запись в этот каталог?

  1. Если каталог установки принадлежит системе, вам может потребоваться войти в систему как администратор или учетная запись «root».

    sudo pip установить openpyxl

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

  3. более простой способ: измените разрешение этого каталога:

    chmod +a 'пользователь: YOUR_USER_NAME разрешить add_subdirectory,add_file,delete_child,directory_inherit'/Library/Python/2.7/site-packages

person Luckie Hao    schedule 31.05.2017

Измените настройку безопасности папки site-packages на «Полный доступ» для вашего пользователя и повторно запустите pip install openpyxl.

person Jazz    schedule 25.12.2017
comment
Есть лучшие способы сделать это, чем изменить настройки безопасности. pip install --user является одним из них. - person Munir; 26.12.2017