2016-12-22 1 views
0

Ich versuche, einige Anwendung mit Python 2.7.9 und Django 1.10 unter FreeBSD zu debuggen.FreeBSD. Django-Shell-Berechtigung verweigert

Im Allgemeinen habe ich zwei Benutzer mit gleichen Rechten und Erlaubnis, aber wenn ich django-Shell mit dem ersten Benutzer ausführen, und führen Sie mein Skript in der Shell alles in Ordnung.

Das Problem beginnt, wenn ich versuche, das gleiche Skript von dem zweiten Benutzer auszuführen, erhalte ich:

File "/usr/local/lib/python2.7/shelve.py", line 223, in __init__ 
    Shelf.__init__(self, anydbm.open(filename, flag), protocol,  writeback) 
    File "/usr/local/lib/python2.7/anydbm.py", line 85, in open 
     return mod.open(file, flag, mode) 
error: (13, 'Permission denied') 

stelle ich alle Verzeichnisse in usr/local hat - chmod 777. Erste und zweite Benutzer in der sind gleiche Gruppen und hat aus meiner Sicht die gleichen Berechtigungen.

+0

Es gibt keine genügenden Informationen hier. Könnte alles sein. Wenn man sich das Traceback ansieht, scheint es, als ob das Problem auftritt, wenn man versucht, eine Datei unter Verwendung einer beliebigen Datenbank zu öffnen. Ansonsten würde es helfen, zumindest zu wissen, wie dein Django eingerichtet ist und was dein Skript macht. –

+0

Django ist in der virtualenv eingerichtet. Das Skript versucht, eine Verbindung zum gsx Apple-Dienst herzustellen (ich bin mir absolut sicher, dass das Skript funktioniert, weil es beim ersten Benutzer funktioniert. Ich kann dieses Skript hier posten, wenn es Sinn macht.) – Vitalii

Antwort

0

Zunächst ist Ihre Information nicht genug zu lösen. Stellen Sie jedoch sicher, dass Sie virtualenv für Ihre Python-Entwicklung verwenden. Wenn Sie das nicht verwenden, müssen Sie in jedem Fall sudo verwenden, was eine schlechte Übung ist. Und eine andere Sache nicht setzen 777 Erlaubnis auf /usr/local/lib/python2.7/ hier. Es kann Ihre Betriebssystemfunktionen beschädigen.

können Sie sehen die Dokumentation von virtualenv

+0

Ich weiß einfach nicht, was andere Informationen können hier nützlich sein. Ich verwende tatsächlich virtualenv in meinem Projekt, und ich habe auch Berechtigungsprobleme mit diesen Ordnern: Datei "/opt/servo/env/src/../ ..", Zeile 227, in Funktionsname self.shelf = shelve.open (self.fp, protocol = -1. error: (13, 'Permission denied'). – Vitalii

+0

@Vitalii Haben Sie 'virtualenv' aktiviert? Wenn Sie das wirklich getan haben, gibt es keinen Grund, die globale Bibliothek zu benutzen. –

+0

Ja I hat es aktiviert, aber anydbm ist eine eingebaute Bibliothek in Python, deshalb benutzt es die globale Bibliothek [Python] (https://docs.python.org/2/library/anydbm.html) – Vitalii