【问题标题】:Pyflakes "invalid syntax" and print function's variable in curly bracesPyflakes“无效语法”和花括号中的打印函数变量
【发布时间】:2017-10-24 23:11:10
【问题描述】:

我安装了 Sublime Text 3、SublimeLinter 插件和 pyflakes linter。 在 pip pyflakes 版本是 1.6.0。操作系统 win 7 x86。

my_name = 'Name'
print(f"My name is {my_name}.")

这是错误:

SublimeLinter: pyflakes output:
ex3.py:9:30: invalid syntax
print(f"My name is {my_name}.")
                             ^ 

另外,这个结构我没有错误:

print("My name is {}.".format(my_name))

代码运行得很好,但是为什么 pyflakes 给我这个错误呢?是 pyflakes 问题还是什么?

【问题讨论】:

  • 您的 pyflakes 似乎没有设置为 Python 3.6。

标签: python-3.x sublimetext3 python-3.6 sublime-text-plugin


【解决方案1】:

这是一个已知问题,请参见此处:

https://gitlab.com/pycqa/flake8/issues/296

目前版本好像已经修复了……

编辑:由于您使用的是最新版本,因此您可能遇到了 sublime-linter 问题,如下所示:

https://forum.sublimetext.com/t/sublimelinter-pyflakes-not-matching-pyflakes-from-cli/31348/3

要对此进行测试,您可以在 sublime 之外的命令行中运行 pyflakes 命令以查看它是否有效。

Edit2:根据提问者的评论,使用 SublimeLinter-flake8 而不是 SublimeLinter-pyflakes 与来自 python 3.6+ 的 f 字符串兼容。

(另外,很抱歉重复发布的答案。感谢您删除一个,@Andy。我不知道那里发生了什么。)

【讨论】:

  • 是的,从 cmd pyflakes 工作正常,看起来是 linter 的问题,所以我会尝试 flake8 而不是 pyflakes。非常感谢。
【解决方案2】:

所以,最好的方法是在 python 3.6+ 中使用 SublimeLinter-flake8 而不是 SublimeLinter-pyflakes,因为 pyflakes linter 不是兼容3.6呢。 flake8 也与 pyflakes 做同样的事情等等。

【讨论】:

    猜你喜欢
    • 2016-11-18
    • 2023-03-11
    • 2018-09-22
    • 2021-06-24
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    相关资源
    最近更新 更多