Начиная с Ubuntu в digitalocean: pip не работает с & ldquo; Permission denied & rdquo;

Я человек из Windows и новичок в Ubuntu и DigitalOcean. Я выполнил шаги в

https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04

и прохожу

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn

, но это сбой на pip install django, с

OSError: [Errno 13] Permission denied: '/opt/myenv/build'

Отслеживание:

(myenv)jeffy@originaldjangster:~$ pip install django
Downloading/unpacking django
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/basecommand.py", line 1                         22, in main
    status = self.run(options, args)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/commands/install.py", l                         ine 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundl                         e=self.bundle)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1153, in                          prepare_files
    location = req_to_install.build_location(self.build_dir, not self.is_downloa                         d)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 218, in b                         uild_location
    _make_build_dir(build_dir)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1527, in                          _make_build_dir
    os.makedirs(build_dir)
  File "/opt/myenv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/opt/myenv/build'

Storing debug log for failure in /home/jeffy/.pip/pip.log

Журнал отладки:

jeffy@originaldjangster:~$ more /home/jeffy/.pip/pip.log
------------------------------------------------------------
/opt/myenv/bin/pip run on Tue Aug  5 14:45:38 2014
Downloading/unpacking django
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1153, in prepare_files
    location = req_to_install.build_location(self.build_dir, not self.is_download)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 218, in build_location
    _make_build_dir(build_dir)
  File "/opt/myenv/local/lib/python2.7/site-packages/pip/req.py", line 1527, in _make_build_dir
    os.makedirs(build_dir)
  File "/opt/myenv/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/opt/myenv/build'
jeffy@originaldjangster:~$

visudo :

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
jeffy   ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Я пропустил этап проблемы и успешно продолжал до pip install gunicorn, после чего я получил ту же ошибку:

OSError: [Errno 13] Permission denied: '/opt/myenv/build'

К вашему сведению: я делаю это в активированном virtualenv, в соответствии с инструкциями.

1120 Что я делаю не так? Спасибо за помощь.


Вышесказанное - моя основная проблема. Если следующее легко ответить в дополнение, пожалуйста, сделайте. Это тот шаг, который мне нужно сделать, как только я пойму вышесказанное:

Мне также нужно знать, как обновить Python 2.7.6 до Python 3.4.1 (или наивысшую доступную Ubuntu-совместимую версию ). Python уже был установлен - я не установил его.

Я хотел бы иметь только 3.4.1. Я не хочу 2,7 и 3,4 рядом.

jeffy@originaldjangster:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:        14.04
Codename:       trusty
jeffy@originaldjangster:~$ python --version 
Python 2.7.6
0
задан 5 August 2014 в 23:35

1 ответ

Цифровая Океанская поддержка:

Таким образом независимо, если Ваш пользователь установлен быть в состоянии выполнить все команды в visudo, Вы будете все еще обязаны добавлять "sudo" ко всем Вашим командам.

Относительно Python, версия 2.7 просто не может быть удалена. Если Вы будете желать использовать версию 3.xx Python, необходимо будет использовать команду python3.

<час>

Меня:

Похож, который был им. "То, как установить" руководство https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn , не имеет "sudo" префикса перед командами "зернышка", и кажется, что это должно. Это похоже 3.4, уже установлен также. Превосходный.

<час>

ОБНОВЛЕНИЕ

оказывается, что вышеупомянутое не достаточно хорошо. Хотя это устанавливает ipython, это не устанавливает его в virtualenv - нет никакого ipython каталог, созданный в /opt/jenv/bin вообще. Когда установлено таким образом, в моей среде, так или иначе, запуская IPython использует Python 2.7, не 3.4. (это - то, что это говорит, когда это запускает).

решение состоит в том, чтобы активировать virtualenv и затем установить с virtualenv's зернышко:

sudo /opt/jenv/bin/pip install ipython

(Напоминание, что без sudo, это не работает - посмотрите вопрос.) IPython теперь правильно установлен в каталоге bin, и, когда запущено, говорит, что это использует Python 3.4 (как долго, поскольку virtualenv был создан с -p /usr/bin/python3.4).

Это кажется эти инструкции потребность, которая будет изменена.

2
ответ дан 5 August 2014 в 23:35

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

Похожие вопросы: