ошибка установки pip с: OSError: [Ошибка 13] Отказано в разрешении для каталога
pip install -r requirements.txt сбой с приведенным ниже исключением OSError: [Errno 13] Permission denied: '/usr/local/lib/.... Что не так и как мне это исправить? (Я пытаюсь настроить Django)
Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko Cleaning up... Exception: Traceback (most recent call last): File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run requirement_set.install(install_options, global_options, root=options.root_path) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install requirement.install(install_options, global_options, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install self.move_wheel_files(self.source_dir, root=root) File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files pycompile=self.pycompile, File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files clobber(source, lib_dir, True) File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber os.makedirs(destsubdir) File "/usr/lib/python2.7/os.py", line 157, in makedirs mkdir(name, mode) OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info'
Переведено автоматически
Ответ 1
Вместо того, чтобы использовать sudo with pip install, лучше сначала попробовать pip install --user. Если это не удается, тогда взгляните на верхний пост здесь.
Причина, по которой вам не следует использовать sudo, заключается в следующем:
Когда вы запускаете pip с помощью sudo, вы запускаете произвольный код Python из Интернета от имени пользователя root, что представляет собой довольно большой риск для безопасности. Если кто-то размещает вредоносный проект на PyPI и вы устанавливаете его, вы предоставляете злоумышленнику root-доступ к вашему компьютеру.
Ответ 2
Вариант a) Создайте virtualenv, активируйте его и установите:
Моя рекомендация использовать безопасную опцию (a), чтобы требования этого проекта не мешали требованиям других проектов.
Ответ 3
Вы пытаетесь установить пакет по общесистемному пути, не имея на это разрешения.
В общем, вы можете использовать sudo для временного получения прав суперпользователяпод свою ответственность, чтобы установить пакет по общесистемному пути:
На самом деле, это плохая идея, и для нее нет подходящего варианта использования, см. Комментарий @wim .
Если вы не хотите вносить общесистемные изменения, вы можете установить пакет по индивидуальному для каждого пользователя пути, используя --user флаг.
Все, что требуется, это:
pip install --user runloop requirements.txt
Наконец, для еще более мелкозернистого управления вы также можете использовать virtualenv, который может быть превосходным решением для среды разработки, особенно если вы работаете над несколькими проектами и хотите отслеживать зависимости каждого из них.
После активации вашего virtualenv с помощью
$ my-virtualenv/bin/activate
следующая команда установит пакет внутри virtualenv (а не по общесистемному пути):
pip install -r requirements.txt
Ответ 4
Просто уточняю, что сработало у меня после долгих усилий в linux (на основе ubuntu) из-за ошибок с отказом в разрешении, и использую ответ Берта выше, который я сейчас использую...
$ pip install --user <package-name>
или при запуске pip для файла требований ...
$ pip install --user -r requirements.txt
и они надежно работают при каждой установке pip, включая создание виртуальных сред.
Однако самым чистым решением, из моего дальнейшего опыта, была установка python-virtualenv и virtualenvwrapper с sudo apt-get install помощью. на системном уровне.
Затем в виртуальных средах используйте pip install без --user флага И без sudo. В целом намного чище, безопаснее и проще.