Ich versuche, Django auf einer bereits vorhandenen virtuellen Umgebung zu installieren.
Nach den Anweisungen auf der Pip-Install-Website hier habe ich Folgendes von SSH ausgeführt.
name@server:~$ . myenv.env/bin/activate
(myenv.env)nam@server:~$ pip install django
Am Ende der Installation sehe ich jedoch Folgendes:
creating /usr/local/lib/python2.7/dist-packages/django
error: could not create '/usr/local/lib/python2.7/dist-packages/django': Permission denied
Es scheint, dass versucht wird, es im globalen Verzeichnis zu installieren. Ich habe keine Sudo-Privilegien. Mache ich hier etwas falsch
Update: $ PATH = /var/django/myenv.env/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
python
installation
packages
virtualenv
pip
Luke Sapan
quelle
quelle
easy_install
?which easy_install
eingeben, um festzustellen, ob Sie Ihre virtuelle oder die Systemumgebung verwenden.which pip
? Und siehst dupip
hineinmyenv.env/bin/
?Antworten:
Entschuldigung für ein Jahr verspätete Antwort! Ich hatte das gleiche Problem und habe es behoben. Ich weiß nicht, ob Sie den Namen eines Verzeichnisses nach dem Erstellen der virtuellen Umgebung geändert haben. Wenn ja, dann habe ich Folgendes getan.
1.)
deactivate
dein v-env. Nach dem Fix müssen Sie die v-env neu starten, vielleicht auchdeactivate
jetzt. Recht?2.) Da wir nun die v-env in einem anderen Pfad erstellt haben, müssen wir die statischen Pfadvariablen in diesen Dateien ändern.
Um Pip zum Laufen zu bringen, musst du das nicht tun, aber ich tue es immer noch.
bin/activate
,bin/activate.csh
,bin/activate.fish
bin/pip
,bin/pip2
,bin/pip2.7
bin/easy_install
,bin/easy_install2.7
3.) Damit pip funktioniert, müssen Sie den Python-Interpreter in der Pip-Datei korrigieren. Auch dieser hat einen statischen Interpreter-Speicherort, der von virtualenv im Erstellungsprozess festgelegt wurde.
4.) Damit easy_install funktioniert? Sie haben es erraten, korrigieren Sie den Dolmetscherstandort.
Ich hoffe, dass dies allen, die dies lesen, in Zukunft geholfen hat. Sorry OP, für die Verspätung.
quelle
grep -rli '/path/to/old/env/bin' * | xargs -i@ sed -i 's/\/path\/to\/old\/env\/bin/\/path\/to\/new\/env\/bin/g' @
. QuelleIch hatte das gleiche Problem.
Ich habe die virtuelle Umgebung gelöscht und eine neue erstellt, die das Problem gelöst hat.
Wahrscheinlich nicht die Antwort, auf die Sie gehofft haben, aber da es die einzige ist ...
quelle
Nun, ohne Administratorrechte sind Sie sehr eingeschränkt in dem, was Sie tun können. Wenn Sie sich nicht erheben oder nach Berechtigungen fragen dürfen, besteht der beste Weg, dies zu tun, darin, eine andere Umgebung zu erstellen, eine Datei "require.txt" zu erstellen und alle benötigten Pakete auf Ihren Computer (django) herunterzuladen befindet sich auch in Ihrer Anforderungsdatei und es sollte funktionieren.
quelle
Hatte das gleiche Problem. In meinem Fall war der Grund, dass die erstellte virtuelle Umgebung für Python2.7 (Standardeinstellung) war, ich jedoch pip3 zum Installieren eines Pakets verwendete. pip3 war in meiner virtuellen Umgebung nicht vorhanden, daher wurde standardmäßig die globale Version verwendet. Für mich war das Update zu verwenden
um die env zu erstellen.
quelle
Ich hatte das gleiche Problem festgestellt, das durch das Umbenennen des Benutzers verursacht wurde. Crispys Antwort ist völlig richtig. Und meine Lösung könnte bequemer sein.
setps:
1. Geben Sie den Bin-Pfad Ihrer virtuellen Umgebung ein, z. B.
cd ~/virenv_dir/bin
2. Benennen Sie alle Dateien in diesem Verzeichnis mit dem Befehl sed um.
sed -i 's/old_name/new_name/' *
quelle
In meinem Fall hatte ich zwei Aliase definiert (um ein anderes Problem in der Standard-Python-Version zu beheben):
Und dies verursachte die gleichen Symptome:
Durch Entfernen der Aliase wurde das Problem behoben (vor oder nach dem Erstellen der virtuellen Umgebung).
quelle
Beim Aufrufen
sudo pip
wird global pip und nicht pip in Ihrer virtuellen Umgebung aufgerufen. Aktivieren / bearbeiten Sie Ihre Umgebung und rufen Sie dann einfach anpip
, nichtsudo pip
, dies kann Ihr Problem beheben, wie es bei mir der Fall war .quelle