gpt4 book ai didi

python - Django 管道编译器不工作

转载 作者:行者123 更新时间:2023-11-28 18:41:10 26 4
gpt4 key购买 nike

我正在尝试让 django-pipeline 在 Windows 上本地运行。当我运行 collecstatic 或 runserver 并转到站点时,出现以下错误:

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

在网站上,当在模板中调用 {% compressed_css 'main' %} 时会发生这种情况。

查看回溯,它似乎发生在 pipeline\compilers\__init__.py 这一行:return list(executor.map(_compile, paths)) ,使用本地变量:

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>

settings.py 的相关 block :

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'
}
}

sass 和 yuglify 都在命令行中工作。

相关文件系统结构:

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

如果我取出 PIPELINE_COMPILERS = (...) 并仅使用它来缩小常规 CSS 文件,它会完美运行。

最佳答案

我有同样的错误。

它来自压缩器:当 DEBUG = True 时,django-pipeline 不会压缩你的文件,但它仍然会尝试编译它们。因此,如果您有任何文件需要压缩,您必须为 Windows 设置路径(默认路径为 linux)。否则,您也可以仅将编译器置于生产环境中并使用浏览器编译(我对 LESS 的选择)。

在您的情况下,您需要设置 PIPELINE_SASS_BINARY

关于python - Django 管道编译器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25964158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com