Я пользователь Windows и новичок в Ubuntu и DigitalOcean. Я выполнил шаги в
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04
и я прохожу через
но это не удается 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:~$
визуал:
#
# 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, как и было сказано.
Что я делаю не так? Спасибо за помощь.
Вышеизложенное — моя главная проблема. Если на следующее легко ответить дополнительно, пожалуйста, сделайте это. Это шаг, который мне нужно предпринять, как только я разберусь с вышеизложенным:
Мне также нужно знать, как обновиться с 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
решение1
Поддержка Digital Ocean:
Поэтому независимо от того, разрешено ли вашему пользователю выполнять все команды в visudo, вам все равно потребуется добавлять «sudo» ко всем вашим командам.
Что касается Python, версию 2.7 просто так удалить нельзя. Если вы хотите использовать Python версии 3.xx, вам нужно будет использовать команду python3.
Мне:
Похоже, это было оно. Руководство "Как установить"
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn
не имеет префикса "sudo" перед командами "pip", а вроде бы должен быть. Похоже, что 3.4 уже установлен. Отлично.
ОБНОВЛЯТЬ
Оказывается, вышесказанное не достаточно хорошо. Хотя оно устанавливает ipython, оно не устанавливает егов виртуальном окружении--никакого 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
).
Кажетсяэти инструкциинеобходимо изменить.