首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Emacs flycheck和python virtualenv

Emacs flycheck和python virtualenv
EN

Stack Overflow用户
提问于 2020-05-01 07:08:08
回答 2查看 569关注 0票数 1

我对Python、virtualenvs和Emacs相当陌生。我想尝试将用于检查和格式化代码(flake8和黑色)的python包与我的实际代码库使用的包(例如,numpy等)保持一致。

我的想法是创建两个独立的虚拟主机(使用pyenv),一个用于Emacs扩展所需的包,另一个用于我的其余代码。

我正在使用Emacs软件包elpy;安装后,黑色自动格式化立即工作。甚至当我在我的项目中-文夫和黑是安装在我的emacs。

Flycheck并不是那么幸运;它很难找到flake8可执行文件。在我的Emacs init文件中放置以下内容什么也不做;它似乎是默认的,而是默认为当前虚拟环境中的python可执行文件。

代码语言:javascript
复制
(setq flycheck-python-flake8-executable <PATH>) 

不过,我可以通过Emacs交互模式获得适当的可执行文件。

代码语言:javascript
复制
M-x flycheck-set-checker-executable RET python-flake8 RET <PATH>

我检查检查器状态,它说‘可以启用’,但是当我使用交互式启用命令时,它会响应‘检查器可能不在这个缓冲区中使用’。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-01 14:36:16

我在深夜打了这个问题,没有很好地解释我想要什么。我的目标是让pip freeze不输出与我的项目代码库无关的python包。

经过更多的思考之后,我找到了一种更直接的方法来获得我想要的东西(而不是拥有多个虚拟主机)。

  1. 在项目的虚拟环境中安装flake8 (或其他任何东西)。
  2. 使用pigar来生成基于导入的需求列表。

下面是一个简短的Makefile;make freeze

代码语言:javascript
复制
# Use pigar to generate 'pip freeze' requirements based on imports, no comments.
freeze:
    pigar -p .tmpreqs --without-referenced-comments
    tail -n +3 .tmpreqs > requirements.txt
    rm .tmpreqs
票数 0
EN

Stack Overflow用户

发布于 2020-05-01 07:45:00

将用于检查和格式化代码(flake8和黑色)的python包保留在我的实际代码库使用的包中。

默认情况下是这样的。blackflake8入口脚本shebang指定绝对python:

代码语言:javascript
复制
$ head -n1 $(which black)
#!/usr/bin/python3.8
$ head -n1 $(which flake8)
#!/usr/bin/python3.8
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61538267

复制
相关文章

相似问题

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