2012-06-29 20 views
7

Ich habe ein Django-Projekt, das Buildout verwendet. Wenn Sie die Anwendung ausführen oder debuggen, läuft sie problemlos mit meinem Buildout-Skript. Ich benutze auch django-compressor, um meine LESS-Dateien zu komprimieren und zu kompilieren. Ich installierte LESS-Server-Seite mit Knoten und Sie können wie gewohnt auf die lessc-Binärdatei von der Shell zugreifen. django-compressor führt Popen aus, um den lessc-Befehl auszuführen. Wenn dies geschieht, wird eine Exception ausgelöst:/bin/sh: lessc: Befehl nicht gefunden.Ausführen von Django mit Ausführen kann nicht weniger CSS finden

Wenn ich/bin/sh lessc ausführen, findet es es. Wenn ich den interaktiven Python betrete und Popen (['/ bin/sh', '-c', 'lessc']) starte, findet er es. Welche Shell oder Umgebung benutzt Django in PyCharm und wie kann ich es einrichten, um entweder/etc/paths oder $ HOME/.bashrc usw. zu lesen? Lessc befindet sich unter/usr/local/bin in/etc/Pfade.

ich auf Mac OSX am 10.7, btw

Vielen Dank für jede Unterstützung, Travis

Antwort

5

Wie in Django Kompressor docs hingewiesen, können Sie verwenden:

COMPRESS_PRECOMPILERS = (
    ('text/less', 'lessc {infile} {outfile}'), 
) 

Aber wahrscheinlich aus irgendeinem Grund Django konnte die lessc-Binärdatei nicht finden. Geben Sie ihn dann mit seinem vollständigen Namen ein:

COMPRESS_PRECOMPILERS = (
    ('text/less', '/usr/local/bin/lessc {infile} {outfile}'), 
) 
9

Ich hatte das gleiche Problem. Um dies zu beheben Ich öffnete Terminal und

$ which lessc 

, die mir gegeben hast/usr/local/bin/lessc

nächste, in PyCharm öffnete ich die Run/Debug-Konfigurationen für mein Projekt.

Unter dem Django Server Drop-down habe ich mein Projekt ausgewählt.

Klicken Sie in der Konfigurationsansicht rechts auf das Feld "..." hinter dem Feld "Umgebungsvariablen:".

In diesem Fenster Umgebungsvariablen hinzugefügt ich eine neue Zeile mit den folgenden Daten: PATH (der Name) /usr/local/bin (der Wert)

Stellen Sie sicher, "Include Mutterumgebungsvariablen" aktiviert ist.

Klicken Sie auf OK Klicken Sie auf Anwenden/OK

Fertig

Viel Glück!

+0

2016 danke knospe;) – grokpot

+0

Es funktioniert!Meine Elternumgebung hat bereits den 'PATH' enthalten und der' PATH' enthielt '/ usr/local/bin', warum funktioniert das nicht? – Dozer

+0

Für mich war es nvm Installationspfad. Danke vielmals :) – ali

1

Sie benötigen die lessc Binärdatei. Es gibt ein paar verschiedene Möglichkeiten, um es zu bekommen. Ich persönlich bevorzuge die nicht-NodeJS Methode zu verwenden, um es zu installieren (auf Debian-basierten Distributionen wie Ubuntu):

sudo apt-get install node-less yui-compressor

Es wird installieren Sie es in einer der folgenden Stellen:

/usr/local/bin/lessc 
/usr/bin/lessc 

Welche, sollte in Ihrem Pfad bereits sein.