Python libsass sass.complie()没有编译sass

时间:2015-07-28 14:43:14

标签: python css flask sass libsass

我在获取libsass编译SASS文件时遇到问题。我可以很好地编译SCSS文件。

我有一个Flask应用程序,我已安装libsass,我正在使用libsass绑定sass。它运行良好,但缺少一些功能 - 它不能编译SASS但它可以编译SCSS。这就是我的所作所为:

在我的applicaiton.py文件中,我有

from flask import Flask
import sass

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
    app.run()

我的两个测试文件是test_scss.scss,有效:

$font-stack:    Helvetica, sans-serif;
$primary-color: #333;

body {
  font: 100% $font-stack;
  color: $primary-color;
}

test_sass.sass

$font-stack:    Helvetica, sans-serif
$primary-color: #333

body
  font: 100% $font-stack
  color: $primary-color

文档说sass.complie可以接受SASS代码,但我只能接受SCSS代码。也就是说,当我运行我的应用程序时,只有.scss文件被编译为CSS。运行sass.compile后我的应用程序的目录结构是:

  • 客户端
    • CSS
      • app.css
      • test_scss.css
    • LIB
    • SASS
      • test_sass.sass
      • test_scss.scss
  • 服务器
    • 模板
    • application.py

有人建议我只是将SASS文件重命名为.scss扩展名的内容。与test_sass.scss:'

一样
$font-stack:    Helvetica, sans-serif
$primary-color: #333

body
  font: 100% $font-stack
  color: $primary-color

然而,当我这样做时,我只是得到以下错误:

src/web-internal/server/applicaiton.py", line 8, in <module>
    sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
  File "/usr/local/lib/python3.4/site-packages/sass.py", line 516, in compile
    raise CompileError(v)
sass.CompileError: b"Error: top-level variable binding must be terminated by ';'\n        on line 2 of src/web-internal/server/../client/sass/test_sass.scss\n>> $primary-color: #333\n   ^\n"

我想使用SASS,并且不愿意接受SCSS。有没有人有什么建议?我觉得sass documentation中有一些我误解的东西。

1 个答案:

答案 0 :(得分:0)

我从来没有使用sass.compile,但我找到了解决办法。

...

if __name__ == '__main__':
    # Start sassc with --watch
    sass_cmd = subprocess.Popen(['sass', '--watch', 'client/sass' + ':' + 'client/css'])
    ...