Ich bin ein Windows-Benutzer und ein Ubuntu- und DigitalOcean-Neuling. Ich habe die Schritte in
https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04
und ich gehe durch
aber es scheitert an pip install django
, mit
OSError: [Errno 13] Permission denied: '/opt/myenv/build'
Zurück verfolgen:
(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
Austestungsprotokoll:
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:~$
visuell:
#
# 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
Ich habe den Problemschritt übersprungen und bin erfolgreich bis fortgefahren pip install gunicorn
. An diesem Punkt erhielt ich den gleichen Fehler:
OSError: [Errno 13] Permission denied: '/opt/myenv/build'
Zu Ihrer Information: Ich mache das wie angewiesen in einer aktivierten virtuellen Umgebung.
Was mache ich falsch? Danke für die Hilfe.
Das Obige ist mein Hauptproblem. Wenn das Folgende zusätzlich leicht zu beantworten ist, tun Sie es bitte. Das ist der Schritt, den ich unternehmen muss, sobald ich das Obige herausgefunden habe:
Ich muss auch wissen, wie ich von Python 2.7.6 auf Python 3.4.1 (oder die höchste verfügbare Ubuntu-kompatible Version) aktualisiere. Python war bereits installiert – ich habe es nicht installiert.
Ich möchte nur 3.4.1 haben. Ich möchte nicht 2.7 und 3.4 nebeneinander.
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
Antwort1
Digital Ocean-Unterstützung:
Unabhängig davon, ob Ihr Benutzer so eingestellt ist, dass er alle Befehle in Visudo ausführen kann, müssen Sie dennoch allen Ihren Befehlen „sudo“ hinzufügen.
Was Python betrifft, kann Version 2.7 nicht einfach entfernt werden. Wenn Sie Python Version 3.xx verwenden möchten, müssen Sie den Befehl python3 verwenden.
Mich:
Das scheint es gewesen zu sein. Die Anleitung „So installieren Sie“
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-django-with-postgres-nginx-and-gunicorn
hat nicht das Präfix „sudo“ vor den „pip“-Befehlen, obwohl es so aussehen sollte. Es sieht so aus, als wäre 3.4 auch schon installiert. Ausgezeichnet.
AKTUALISIEREN
Es stellt sich heraus, dass das oben genannte nicht gut genug ist. Obwohl es ipython installiert, installiert es es nichtin der virtuellen Umgebung--es wird überhaupt kein ipython
Verzeichnis erstellt /opt/jenv/bin
. Wenn es auf diese Weise installiert wird, verwendet IPython in meiner Umgebung beim Starten jedenfalls Python 2.7 und nicht 3.4. (das wird beim Start angezeigt).
Die Lösung besteht darin, die virtuelle Umgebung zu aktivieren und dann mit demvirtuelle UmgebungenPip:
sudo /opt/jenv/bin/pip install ipython
(Zur Erinnerung: Ohne sudo
funktioniert dies nicht – siehe Frage.) IPython ist jetzt korrekt im Bin-Verzeichnis installiert und zeigt beim Start an, dass es Python 3.4 verwendet (sofern die virtuelle Umgebung mit erstellt wurde -p /usr/bin/python3.4
).
Es scheintdiese Anweisungenmüssen geändert werden.