2016-04-10 5 views
0

У меня возникли проблемы с django-pipeline которая требует от вас, чтобы установитьнастройки Django не установлен

settings.STYLUS_BINARY для стилуса компилятора.

В моей settings.py я следующее:

STYLUS_BINARY = os.path.join(BASE_DIR, 'node_modules', '.bin', 'stylus')

Если я печатаю на консоль я вижу папку:

c:/Users/chowza/myproject/node_modules/.bin/stylus

Однако, если я копаться в модуль django-pipe, который фактически использует settings.STYLUS_BINARY и добавляет печать там, я вижу следующее при печати settings.STYLUS_BINARY:

('usr/bin/env/','stylus')

Это то, что путь по умолчанию STYLUS_BINARY устанавливается в соответствии с django-pipeline

В верхней части этого модуля является функцией, которая говорит from pipeline.conf import settings поэтому я предполагаю, что мой файл настройки импортируются.

Это говорит мне, что мой settings.STYLUS_BINARY не установлен.

Я использую python manage.py collectstatic --settings myproject.settings, чтобы скомпилировать файлы стилуса в css с помощью settings.STYLUS_BINARY.

Так что мой вопрос в том, почему переменная настроек не установлена? Что я делаю не так?

Примечание: это был протестирован на Windows, и на развертывании Heroku

+0

Есть ли у вас журналы ошибок? – JClarke

+0

@Jclarke ошибка является ошибочной ошибкой, указывающей, что файл отсутствует при запуске stylus_compiler django-конвейера, поэтому я пошел распечатать местоположение 'settings.STYLUS_BINARY' в stylus_compiler и нашел, что он говорит'/user/bin/env/'вместо' c:/users/chowza/myproject/node_modules/.bin/stylus', что я и ожидал, учитывая, что я написал это в моем файле настроек –

+0

Эй, я только что протестировал его, получил ту же ошибку. Я обновил свои компрессоры, и ошибка исчезла, и все файлы, которые не были собраны, были собраны. – JClarke

ответ

0

провели несколько дней на этом. Потратил много времени.

Библиотеки, у которых плохая документация сосать.

в settings.py

STYLUS_BINARY = os.path.join(BASE_DIR, 'node_modules', '.bin', 'stylus')

должно быть:

PIPELINE['STYLUS_BINARY'] = os.path.join(BASE_DIR, 'node_modules', '.bin','stylus'),

Это предполагает, что у вас есть node_modules/.bin/stylus. Важно то, что он не задан как константа, а как хэш PIPELINE.

Смежные вопросы