首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我怎样才能让flycheck使用虚拟环境?

我怎样才能让flycheck使用虚拟环境?
EN

Stack Overflow用户
提问于 2015-07-16 00:35:23
回答 2查看 3.2K关注 0票数 12

我刚刚愉快地配置了emacs,它通过绝地自动完成,语法检查通过flycheck和virtualenvs在引导程序中创建。这一切似乎都奏效了。

我想添加使用flycheck-pylint (获取导入中的错误)的功能,但是我无法使它工作。即使我手动更改了虚拟服务器(M:pyvenv-激活RET路径到我的-venv),我仍然会看到许多来自错误的虚拟环境的导入错误。

我的当前初始化代码:

代码语言:javascript
复制
(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-缓冲器-venv”和“get-current-缓冲器-flake8”是实现我的特定设置并正确工作的函数。

如何更改所使用的解释器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-16 14:08:45

感谢github上的月球角的回答,我意识到还有一个反检查集-pylint-可执行文件。现在,在以下配置中,所有操作都是正确的:

代码语言:javascript
复制
(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)
票数 14
EN

Stack Overflow用户

发布于 2020-06-08 20:28:48

今天我深入研究了这个问题,找到了另一个解决方案(截止到2020年6月,它适用于当前版本的flycheck )。

只需为给定项目创建具有适当设置的.dir-locals.el即可。比如:

代码语言:javascript
复制
((python-mode
  (flycheck-python-flake8-executable . "/home/marcin/.virtualenvs/adgv/bin/python")
  (flycheck-python-pylint-executable . "/home/marcin/.virtualenvs/adgv/bin/python")))

(使用M-x add-dir-local-variable创建文件也有效,但请记住在命令周围添加双引号)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31443527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档