2014-09-21 2 views
2

Windows에서 로컬로 django-pipeline을 사용하려고합니다. {% compressed_css 'main' %}이 템플릿에 호출 될 때 그런 일이 사이트에Django 파이프 라인 컴파일러가 작동하지 않습니다.

NotADirectoryError at/
[WinError 267] The directory name is invalid 

: 나는 collecstatic 또는의 runserver 실행하고 사이트에 갈 때, 나는 다음과 같은 오류가 발생합니다. 지역 바르와 return list(executor.map(_compile, paths)), : settings.py의

futures   <module 'concurrent.futures' from 'C:\\Python34\\Lib\\concurrent\\futures\\__init__.py'> 
force   False 
_compile  <function Compiler.compile.<locals>._compile at 0x0387A858> 
paths   ['sass/main.sass'] 
multiprocessing <module 'multiprocessing' from 'C:\\Python34\\Lib\\multiprocessing\\__init__.py'> 
executor  <concurrent.futures.thread.ThreadPoolExecutor object at 0x0387B970> 
self   <pipeline.compilers.Compiler object at 0x0387B870> 

관련 덩어리 :

STATIC_ROOT = 'staticfiles' 
STATIC_URL = '/static/' 
STATICFILES_STORAGE = 'pipeline.storage.PipelineCachedStorage' 

STATICFILES_DIRS = (
    (os.path.join(BASE_DIR, 'static/common')), 
) 

STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
    'pipeline.finders.PipelineFinder', 
) 


# Pipeline 
PIPELINE_SASS_BINARY = 'sass' 
PIPELINE_YUGLIFY_BINARY = 'yuglify' 

PIPELINE_COMPILERS = (
    'pipeline.compilers.sass.SASSCompiler', 
) 

PIPELINE_CSS = { 
    'main': { 
     'source_filenames': (
      'sass/main.sass', 
     ), 
     'output_filename': 'css/main.css' 
    } 
} 

말대꾸하고 yuglify 모두가이 선에 pipeline\compilers\__init__.py에서 어떤 일이 일어나고있는 것 같다 역 추적을 보면

명령 행에서 작업하십시오.

관련 파일 시스템 구조 :

myproject/ 
    ... 
    settings.py 
static/ 
    common/ 
     sass/ 
      main.sass 

내가 PIPELINE_COMPILERS = (...)을 꺼내 단지 일반 CSS 파일을 작게를 위해 그것을 사용하는 경우, 그것은 완벽하게 작동합니다.

+0

이 문제에 대한 해결책은 무엇입니까? 여전히 같은 오류가 발생합니다./ –

+0

IRC에서 물었습니다. 아무도 알아낼 수 없습니다. 내 "솔루션"은 리눅스를 사용하는 것이 었습니다. –

답변

0

저는 django-pipe 라인에 익숙하지 않지만 Windows 환경에서 유닉스 스타일의 경로를 사용했기 때문에 추측됩니다. 예 : sass/main.sass와 css/main.css는 아마도 'sass\\main.sass''css\\main.css'

+0

그렇게 생각 하겠지만,'os.path.join()'을 시도해 보았고 이스케이프 처리 된 백 슬래시를 사용했지만 지금까지는 행운을 얻지 못했습니다. 나는 또한 LESS 컴파일러를 시도하고 같은 문제가있다. 그러나 yuglify는 잘 작동합니다. –

+0

너무 나쁩니다. 완전한 절대 경로를 사용하는 것은 어떻습니까? – Arjen

+0

그 (것)들을 기다리고 있지 않다, 국부적으로 vars는 가득 차있는 경로에 이것을 개조한다. 이 프로그램은 심지어 정확하게 실행되고 있습니다. 파이썬이 제공하는 것과 동일한 인수를 사용하여 sass 또는 lessc 등을 실행하면 명령 행에서 제대로 작동하고 대화 형 쉘에서 정상적으로 작동합니다. 오히려 혼란 스럽습니다. –

1

같은 오류가있었습니다.

이것은 압축기에서 나옵니다. DEBUG = True이면 django-pipeline은 파일을 압축하지 않지만 여전히 압축하려고합니다. 압축 할 파일이 있으면 Windows의 경로를 설정해야합니다 (기본 경로는 Linux 용입니다). 그렇지 않으면 컴파일러를 프로덕션에만 배치하고 브라우저 편집을 사용할 수도 있습니다 (저의 선택은 LESS).

귀하의 경우, PIPELINE_SASS_BINARY을 (를) 설정해야합니다

관련 문제