Установка модуля 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'

4 ответа

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

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

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

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

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

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

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

sudo pip install openpyxl

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

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

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

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

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

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

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

Другие вопросы по тегам