11

jedi を介したオートコンプリートと、ブートストラップ内で作成された flycheck および virtualenvs を介した構文チェックを使用して、emacs をうまく構成しました。それはすべてうまくいくようです。

flycheck-pylint (インポートでエラーを取得するため)を使用する機能を追加したいのですが、機能させることができません。virtualenv を手動で変更しても (Mx: pyvenv-activate RET path-to-my-venv)、間違った virtualenv が使用されているために多くのインポート エラーが発生します。

私の現在の初期化コード:

(require 'pyvenv)
(add-hook 'after-init-hook #'global-flycheck-mode)
(defun set-flake8-executable ()
  (pyvenv-activate (get-current-buffer-venv))
  (flycheck-set-checker-executable (quote python-flake8)
               (get-current-buffer-flake8)))

ここで、「get-current-buffer-venv」と「get-current-buffer-flake8」は、特定のセットアップを実装し、正しく機能している関数です。

使用する通訳者を変更するにはどうすればよいですか?

4

2 に答える 2

14

github の Lunaryornからの回答のおかげで、flycheck-set-pylint-executable もあることに気付きました。現在、次の構成ですべてが正しく機能しています。

(defun set-flychecker-executables ()
  "Configure virtualenv for flake8 and lint."
  (when (get-current-buffer-flake8)
    (flycheck-set-checker-executable (quote python-flake8)
                                     (get-current-buffer-flake8)))
  (when (get-current-buffer-pylint)
    (flycheck-set-checker-executable (quote python-pylint)
                                     (get-current-buffer-pylint))))
(add-hook 'flycheck-before-syntax-check-hook
          #'set-flychecker-executables 'local)
于 2015-07-16T14:08:45.187 に答える