Вопрос Разрешение отклонено: '/usr/local/lib/python2.7/dist-packages/pytz-2017.2.dist-info'


Я попытался установить Django с pip install Django==1.11.4 но я все время сталкиваюсь с этой ошибкой:

Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_set.py", line 784, in install
**kwargs
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/usr/local/lib/python2.7/dist-packages/pip/req/req_install.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/local/lib/python2.7/dist-packages/pip/wheel.py", line 316, in clobber
ensure_dir(destdir)
File "/usr/local/lib/python2.7/dist-packages/pip/utils/__init__.py", line 83, in ensure_dir
os.makedirs(path)
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/pytz-2017.2.dist-info'

2
2017-08-23 18:21


происхождения


И какая команда вы запускали, что вызвало ошибку? - Byte Commander
pip install Django == 1.11.4 я пытался установить Django на ноутбук - Mr H
Ты должен быть root для установки пакетов. sudo pip install Django==1.11.4, затем введите свой пароль пользователя. - waltinator


ответы:


По умолчанию pip устанавливается в /usr/bin.. global pip install, для которой необходимы права sudo. Когда вы работаете с модулями python, используйте virtualenv, это довольно просто

  1. Глобально установить python virtualenv - sudo pip install virtualenv
  2. Создать virtualenv - virtualenv Venv
  3. Активируйте свой virtualenv - source Venv/bin/activate
  4. Теперь сделаем pip install django - это установит django локально в virtualenv, таким образом вам не придется беспокоиться о модификации глобальных модулей python и его гораздо более безопасных

2
2017-08-23 19:20





Pip пытается установить его в / usr / локальную папку, требующую разрешения администратора. Если вы являетесь администратором и хотите установить его, запустите ту же команду с sudo:

sudo pip install Django==1.11.4

Он запросит у вас пароль, и это должно быть так.

edit: вы также можете использовать опцию --user pip, но она будет доступна только для текущего пользователя.


2
2017-08-23 18:55





@ Санчит отвечает на пятно. Виртуальная среда - это способ пойти, если вы управляете разными проектами на своем компьютере и не хотите, чтобы зависимости одного проекта мешали другому.

Если вы хотите установить пакет в своей системе с локально установленным пипсом без виртуальной среды, пока вы получаете сообщение об отказе в разрешении, попробуйте установить пакет только для текущего пользователя. Это можно сделать, добавив --user пометить pip install команда.

Например:

pip install Django==1.11.4 --user

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

  1. SUDO может быть недоступен для каждого пользователя.

  2. * SUDO, похоже, устанавливает пакеты только для root пользователя, а не для текущего пользователя (по крайней мере, в моем случае - Ubuntu 16.04, OpenStack Cloud Instance)

* Можете не относиться к вам. Мне было трудно воспроизвести.


1
2018-02-13 19:48