AutoPEP8、Anaconda、Sublime Text 3 报错不一致
AutoPEP8, Anaconda, Sublime Text 3 Inconsistent Error Reporting
请参考附件截图。
我正在研究 scrapy 管道。我正在使用带有 Anaconda/AutoPep8 的 Sublime Text 3。我刚从没有 AutoPep8 或 Anaconda 的 ST2 搬过来。
巨大的白点告诉我这行语法无效。我无法弄清楚问题出在哪里,所以我复制了该行并将其粘贴到当时空文件的第 1 行。语法错误仍然显示,表明这不是前一行缺少右括号的问题。
然后我编写了一些类似的代码,第 3、6 和 9 行。如您所见,它们都通过了测试。 (我不关心其他的小错误,它们不是问题)。
然后我将整个方法粘贴到这个新文档中,现在,如您所见,连可疑的行 (22) 也通过了。
然后我复制并粘贴了整个 class,再次,如您所见,第 49 行,它之前抱怨的代码现在根本没有引起任何问题。
我尝试使用命令面板 - PEP8:预览更改,(参见 https://github.com/wistful/SublimeAutoPEP8)但没有任何反应。
我还尝试了右键单击菜单 Anaconda > Autoformat PEP8 Errors,但是 E501 错误(行太长)被忽略了,并且 if 语句中假定的语法错误没有发生。
注意:当我上周第一次开始使用 AutoPep8 修复 E501 错误时,我注意到大约在脚本进行到一半时,它突然完全停止报告错误。不知道有没有关系
我在 ST3 启动时也遇到此错误:https://github.com/DamnWidget/anaconda/issues/514。然而,大家的共识似乎是,如果 Sublime 在你点击这个错误后还能正常工作,那就没什么好担心的了。我只是提到这一点是为了尽可能多地告诉你所以你可以提供帮助。
我也尝试过将 len('advocate') 转换为字符串,但语法错误仍然存在。
这是怎么回事? Anaconda、AutoPep8、ST3 或我的代码中是否存在错误?
Ubuntu 16.04,Python 3.4,(但 'automatic' 在 ST3 中构建)ST3 Build 3126(我不知道内部版本号如何与版本号对齐) Anaconda、AutoPep8 版本号未知,但我不到两周前就得到了它们。
好吧,在 VSCode 中进行了很多非常耐心的谷歌搜索和比较测试,但我的答案非常简单:我应该输入 '==',而不是 '='!是的,亲爱的朋友们,这是基本的Python。 =表示赋值,==表示相等或比较。我的if是后一种类型,因为不能在if语句中赋值。现在 VSCode 并没有使这一点更清楚,我认为他们都使用 Pylint,但它至少让我知道这可能是一个有效的错误,无论我是否理解。 (当然,除非我比 Pylint 的开发人员了解更多……是的,不太可能)。
感谢 Jean Mark Gawron(他一定是克林贡皇帝的亲戚)给我的答案:http://gawron.sdsu.edu/python_for_ss/course_core/book_draft/programming_intro/boolean_results.html
请参考附件截图。
我正在研究 scrapy 管道。我正在使用带有 Anaconda/AutoPep8 的 Sublime Text 3。我刚从没有 AutoPep8 或 Anaconda 的 ST2 搬过来。
巨大的白点告诉我这行语法无效。我无法弄清楚问题出在哪里,所以我复制了该行并将其粘贴到当时空文件的第 1 行。语法错误仍然显示,表明这不是前一行缺少右括号的问题。
然后我编写了一些类似的代码,第 3、6 和 9 行。如您所见,它们都通过了测试。 (我不关心其他的小错误,它们不是问题)。
然后我将整个方法粘贴到这个新文档中,现在,如您所见,连可疑的行 (22) 也通过了。
然后我复制并粘贴了整个 class,再次,如您所见,第 49 行,它之前抱怨的代码现在根本没有引起任何问题。
我尝试使用命令面板 - PEP8:预览更改,(参见 https://github.com/wistful/SublimeAutoPEP8)但没有任何反应。
我还尝试了右键单击菜单 Anaconda > Autoformat PEP8 Errors,但是 E501 错误(行太长)被忽略了,并且 if 语句中假定的语法错误没有发生。
注意:当我上周第一次开始使用 AutoPep8 修复 E501 错误时,我注意到大约在脚本进行到一半时,它突然完全停止报告错误。不知道有没有关系
我在 ST3 启动时也遇到此错误:https://github.com/DamnWidget/anaconda/issues/514。然而,大家的共识似乎是,如果 Sublime 在你点击这个错误后还能正常工作,那就没什么好担心的了。我只是提到这一点是为了尽可能多地告诉你所以你可以提供帮助。
我也尝试过将 len('advocate') 转换为字符串,但语法错误仍然存在。
这是怎么回事? Anaconda、AutoPep8、ST3 或我的代码中是否存在错误?
Ubuntu 16.04,Python 3.4,(但 'automatic' 在 ST3 中构建)ST3 Build 3126(我不知道内部版本号如何与版本号对齐) Anaconda、AutoPep8 版本号未知,但我不到两周前就得到了它们。
好吧,在 VSCode 中进行了很多非常耐心的谷歌搜索和比较测试,但我的答案非常简单:我应该输入 '==',而不是 '='!是的,亲爱的朋友们,这是基本的Python。 =表示赋值,==表示相等或比较。我的if是后一种类型,因为不能在if语句中赋值。现在 VSCode 并没有使这一点更清楚,我认为他们都使用 Pylint,但它至少让我知道这可能是一个有效的错误,无论我是否理解。 (当然,除非我比 Pylint 的开发人员了解更多……是的,不太可能)。
感谢 Jean Mark Gawron(他一定是克林贡皇帝的亲戚)给我的答案:http://gawron.sdsu.edu/python_for_ss/course_core/book_draft/programming_intro/boolean_results.html