好的,我找到了答案。
flycheck选择(默默地?) flake8,如果没有找到,它会退回到 pylint(然后是 pycompile)。
问题是符号链接flake8
消失了。这是为什么/如何。
选择python36并返回后
~/ > sudo port select --set python python36
~/ > sudo port select --set python python27
并在选择 pip36 并返回后
~/ > sudo port select --set pip pip36
~/ > sudo port select --set pip pip27
符号链接/opt/local/bin/flake8
消失。只剩下 flake8-2.7。
> ls -l /opt/local/bin/flake8*
lrwxr-xr-x 1 root admin 70 20 Mar 16:35 /opt/local/bin/flake8-2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/flake8
据推测,当您更新到 Python 3.6 但没有 flake8-36 时,会发生什么情况flake8
(已更新,符号链接已删除)。port select
当您降级到 Python 2.7 时,无法恢复符号链接(其中之一,也许是前者,值得警告——也许是 MacPorts 中的一个小错误)。
~/ > sudo port select --list flake8
Available versions for flake8:
flake8-27
none (active)
flake8
解决方案是在降级时明确指出flake8-27
。
~/ > sudo port select --set flake8 flake8-27
Selecting 'flake8-27' for 'flake8' succeeded. 'flake8-27' is now active.
然后链接回来了,flycheck 选择flake8
了 over pylint
。
> ls -l /opt/local/bin/flake8*
lrwxr-xr-x 1 root admin 25 7 Sep 09:01 /opt/local/bin/flake8 -> /opt/local/bin/flake8-2.7
lrwxr-xr-x 1 root admin 70 20 Mar 16:35 /opt/local/bin/flake8-2.7 -> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin/flake8