2017-02-28 4 views
0

Ich arbeite an der Bereitstellung meiner Django-Anwendung mit uwsgi und nginx auf einem RHEL mit vorinstallierten Python-Paketen. Server wird mit uwsgi und nginx global (als root) installiert. Mein Server ist nicht mit dem Internet verbunden.Installieren von Site-Paketen in der virtuellen Umgebung python

Ich habe sicher kopiert mein Django-Projekt in diesem Server. Für beste Praktiken wie ich hörte virtuelle Umgebung zu verwenden, und wenn ich den Befehl tun,

virtualenv -p /usr/local/lib/python3.5/bin/python3.5 venv 

Alles ist cool. Es erstellt eine virtuelle Umgebung mit Python 3.5.

Aber das Problem ist, ich brauche diese Website-Pakete, die auf dem Server in dieser virtuellen Umgebung vorinstalliert ist. Beispiel django, redis usw. Wenn ich den obigen Befehl tue mit --system-site-packages es wirft ich diesen Fehler

PermissionError: [Errno 13] Permission denied: '/usr/local/lib/python3.6/site-packages/wheel-0.29.0.dist-info'

Gibt es einen sauberen Weg, dies zu tun oder wo es schief geht `?

Antwort

0

Sie können versuchen:

$ pip freeze 

wo pip die systemweite pip ist. Wenn es irgendetwas gibt, dann nur tun:

$ pip freeze > requirements.txt; 
$ source /path/to/venv/bin/activate && pip install -r requirements.txt; 

Auf diese Weise werden Sie sagen, die pip der virtuellen Umgebung zu installieren, all Python-Pakete, die systemweit installiert sind.

Wenn pip freeze nicht funktioniert, ist dies ein Privileg, das Sie als/mit einem Admin ausarbeiten müssen.

UPD: Möglicherweise müssen Sie zusätzliche Pakete wie python3-dev, build-essential usw. für pip install -r requirements.txt installieren, um zu funktionieren.

0

Dies kann passieren, weil ein anderer Benutzer in Ihrem Computer vorhanden ist. Überprüfen Sie, ob Sie über die Systemberechtigungen verfügen, bearbeiten Sie die Eigenschaften der Datei und erteilen Sie ihr die Berechtigung.

Verwandte Themen