【问题标题】:emacs Flycheck "Configured syntax checker python-flake8 cannot be used"emacs Flycheck“无法使用已配置的语法检查器 python-flake8”
【发布时间】:2013-11-06 02:35:00
【问题描述】:

这里是新的 emacs/python 用户。
我正在尝试设置flycheck 工作(并使用flake8)。

这是我init.el中的相关部分:

(require 'python-mode)
(add-to-list 'auto-mode-alist '("\\.py$" . python-mode))
(add-hook 'python-mode-hook 'flycheck-mode)

当我打开 python 文件时,我的模式行包括 Py FlyC-
Flycheck manual 我了解到这意味着Flycheck 无法自动找到合适的检查器。

当我运行 M-x flycheck-select-checker 并选择 python-flake8 时,它会返回:

Configured syntax checker python-flake8 cannot be used

我正在使用带有homebrew 的 OSX 10.9 和这些版本:

$ emacs --version
GNU Emacs 24.3.50.1
$ flake8 --version
2.1.0 (pep8: 1.4.6, pyflakes: 0.7.3, mccabe: 0.2.1) CPython 2.7.5 on Darwin
$ which flake8
/usr/local/bin/flake8
$ python --version
Python 2.7.5
$ which python
/usr/local/bin/python

至于 emacs 包,它们是从 melpamarmalade 安装的

python-mode 版本:6.0.10
Flycheck 版本:0.15snapshot(包:20131105.1502)

关于如何使它工作的任何提示?

【问题讨论】:

  • 你的路径上是否安装了 python-flake8?
  • 不是问题,但是有什么具体原因,为什么不使用内置的Python模式?
  • @lunaryorn 因为互联网告诉我它更好。我没有资格评判,所以我只是在这里跟风......
  • @jeroentbt 以前是这样,但是内置的 Python 模式在 Emacs 24.3 中得到了极大的改进,所以你能读到的关于这个失误的大部分内容都不再是真的了。
  • @lunaryorn 感谢您的提醒。那我就恢复默认了... (stackoverflow.com/a/15672445/1929897)

标签: python macos emacs homebrew flycheck


【解决方案1】:

M-: (executable-find "flake8")。如果显示nil,请将/usr/local/bin 添加到您的exec-path

在 OS X GUI 应用程序不从 shell 配置继承变量,因此具有不同的$PATH。因此,能够在终端中运行 flake8 并不意味着 Emacs 也能够找到它。

您可能还想查看exec-path-from-shell 包。

【讨论】:

  • 太棒了!谢谢! /usr/local/bin 确实不在我的exec-path 中,一旦通过自定义设置一切正常。我可能会使用exec-path-from-shell
  • 我想我遇到了完全相同的问题,但我该如何“将/usr/local/bin 添加到exec-path”?
  • @LWZ 通过将相应的add-to-list 调用添加到您的init.el
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多