在setup.py中检查精确管脚的flake8扩展(e.q.:`foo==1.5.6`)

flake8-exact-pin的Python项目详细描述


在^{tt2}中检查包要求的精确管脚(==)$ 在setup.py中。

例如:

setup(# ...install_requires=['pyramid==1.5.6'],# ...)

精确的管脚通常是个坏主意,因为它们:

  • 如果您的包将被重复使用,则限制其灵活性;即:用作 其他python库或应用程序的库。你强迫他们 使用他们可能不想使用或与之冲突的特定版本 他们已经用过的东西。如果你的包裹是 应用程序而不是库;但是,通常requirements.txt是 更好地管理您固定的应用程序需求(请参见 https://caremad.io/blog/setup-vs-requirement/
  • 在你的包里烤一个非常严格的要求;你可能需要重新制作 你的包只是使用一个新版本的包和一个错误修复。
  • 如果精确的pin,则可能导致难以解决的版本冲突 一些包版本和不确切的别针其他。其他一些包裹 可能需要一个不同的版本,而它可能是 pip不可能解决这个问题。

安装

如果还没有,请安装flake8

$ pip install flake8

然后,安装延长件:

$ pip install flake8-exact-pins

用法

运行以下命令以验证插件是否已正确安装:

$ flake8 --version
2.4.1 (pep8: 1.5.7, flake8-exact-pin: 0.0.0, pyflakes: 0.8.1, mccabe: 0.3) CPython 2.7.9 on Darwin

现在,当您运行flake8时,插件将自动被使用。

当找到一个精确的pin时,flake8将输出如下内容:

./setup.py:28:37: P001 exact pin found in install_requires: "pyramid==1.5.6"

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java窗口。位置和窗口。公开问题   java如何从存储在ArrayList<Node>中的动态生成的文本字段中获取文本?   java如何立即关闭InputStream?   如何重新启动Java程序以激活环境变量   java搜索字符串是否相差一个字符   java CFB模式输出与CTR输出相同;我做错什么了吗?   java如何在javaFX中将实例化对象添加到Stage   java如何在jtextarea上打印来自不同类的文本消息   java以编程方式确定IOException的原因?   限制Java NIO通道(文件或socket)中的可用内容   javajaxb与JDOM:是否可以使用JAXB更新xml文件   批处理文件到java测试   JavaFX:stage的作用是什么。可设置大小(false)是否会导致额外的页边距?   java有没有办法告诉IntelliJ按需堆叠参数?   java Seam会话范围的组件在下一个请求中消失   java Google Web Toolkit对开发复杂的java脚本有用吗?   安卓 studio java ArrayList正在检索最高值   java为什么递归地用随机数填充LinkedList时会出现StackOverflowException?