为teamcity的代码语法检查工具pyflakes增加支持python2和python3

这篇具有很好参考价值的文章主要介绍了为teamcity的代码语法检查工具pyflakes增加支持python2和python3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

TeamCity和pyflakes

TeamCity是一款由JetBrains公司开发的持续集成和部署工具,它提供了丰富的功能来帮助团队协作进行软件开发。其中包括代码检查、自动化构建、测试运行、版本控制等多个方面。

在我们团队中使用TeamCity进行配合pyflakes代码检查,我们需要升级pyflakes到支持python3,同时保留python2的语法检查功能。


在Teamcity中修改python脚本后,无需重启teamcity即可生效。


pyflakes语法检查同时支持python2/3

为teamcity的代码语法检查工具pyflakes增加支持python2和python3


pyflakes

pyflakes · PyPI

查看版本:指令:pip list,pyflakes 2.3.1

teamcity代码:https://svn-xxx/tools/teamcity/check_pyflakes.py

从官网查到最后一个同时支持python2和3的pyflakes版本:https://pypi.org/project/pyflakes/2.4.0/,实测下来它要分别为py2和py3安装,而不是只安装一个来同时适配2和3。

关于pyflakes的使用和配置:python代码检查工具(静态代码审查)


python3的pyflakes支持python2吗?

结论:不支持

语法有差别,比如print

PS D:\work\tools> python -u "d:\xxx\test_teamcity.py"
[zhao]docheck py ast, is_py3:1 ,filePath:D:/debug/qing_debug.py
origin msg:  D:/xxx/qing_debug.py:54:9: invalid syntax
        print "[zhao]aaaaa"
              ^

再举个例子

PS D:\work\tools> python -u "d:\xxx\test_teamcity.py"
[zhao]docheck py ast, is_py3:1 ,filePath:D:/debug/qing_debug.py
origin msg:  D:/debug/qing_debug.py:32:7: invalid syntax
        exec 'print 111'
             ^

再来个例子

PS E:\Code\python_study\collection> py -3 -m pyflakes range_test.py
range_test.py:9:1: 'random' imported but unused
range_test.py:14:10: undefined name 'xrange'

官方的建议

官方建议我们为python2/3分别安装pyflakes。

You can also invoke Pyflakes with python3 -m pyflakes . or python2 -m pyflakes . if you have it installed for both versions.


如何区分是python3还是python2?

按工程人工标记,因为同一个工程中python2和3不能混用,所以在写代码的时候程序员就已经知道当前工程应该用python2解释器还是python3解释器。

因为一个py脚本是要放到python2还是python3的解释器来执行是由程序员来决定的。


一台电脑同时安装python2和3

我们在安装Python3(>=3.3)时,Python的安装包实际上在系统中安装了一个启动器py.exe,默认放置在文件夹C:\Windows\下面。这个启动器允许我们指定使用Python2还是Python3来运行代码(当然前提是你已经成功安装了Python2和Python3)。

在安装python3时不要勾选添加安装目录到环境变量中,下面这几个都不要添加到环境变量的path中

  1. C:\Python38

  2. C:\Python38\Scripts

同时不要把这几个目录添加到环境变量的path中

  1. C:\Users\zhaoqingqing01\AppData\Local\Programs\Python\Python38\

  2. C:\Users\zhaoqingqing01\AppData\Local\Programs\Python\Python38\Scripts\


使用pip安装库

我们在安装python3的时候没有把py3添加到环境变量中,所以当我们使用pip时默认是指向python2。

如果你不放心,还可以这样:py -2 -m pip install XXXX

为Python3安装软件:py -3 -m pip install XXXX

更多原理性的知识,欢迎查阅我的KM文章:zhaoqingqing的网易km个人空间 (netease.com)


为python3安装 pyflakes

py -3 -m pip install pyflakes

C:\Users\zhaoqingqing01>py -3 -m pip install pyflakes
Collecting pyflakes
  Downloading pyflakes-3.0.1-py2.py3-none-any.whl (62 kB)
     |████████████████████████████████| 62 kB 4.8 MB/s
Installing collected packages: pyflakes
  WARNING: The script pyflakes.exe is installed in 'C:\Python38\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed pyflakes-3.0.1

pyflakes检查python语法

pyflakes console.py >logPyflakes.txt 2>&1

py -3 -m pyflakes console.py >logPyflakes.txt 2>&1

PS D:\work\tools\start_docker\scripts> pyflakes console.py
console.py:20:10: invalid syntax
        async def connect(self, command):
                ^
PS D:\work\tools\start_docker\scripts> py -3 -m pyflakes console.py
PS D:\work\tools\start_docker\scripts>

集成到teamcity

旧版只支持到python2

PS D:\work\tools> python -u "d:\xxx\test_teamcity.py"
[zhao]docheck py ast , is_py3:0 ,filePath:D:/xxx/console.py
origin msg D:/xxx/console.py:20:10: invalid syntax
        async def connect(self, command):
                ^

开启python3支持

PS D:\work\tools> python -u "d:\xxx\test_teamcity.py"
[zhao]docheck py ast , is_py3:1 ,filePath:D:/xxx/console.py
origin msg 

参数是啥意思

python 执行保存log 1>>log.txt 2>&1_python 2>log.txt_做测试的喵酱的博客-CSDN博客

Python—后台运行(nohup 、&、 2>&1详解) - 刘_love_田 - 博客园 (cnblogs.com)文章来源地址https://www.toymoban.com/news/detail-470528.html


到了这里,关于为teamcity的代码语法检查工具pyflakes增加支持python2和python3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 进阶 — Pylint 静态代码检查工具

    与 Flake8 一般,Pylint 也是一款 Python 的静态代码检查工具,它会分析 Python 代码中的错误,查找不符合代码风格标准和有潜在问题的代码。除了平常代码分析工具的作用之外,Pylint 还提供了更多的功能,如:检查一行代码的长度,变量名是否符合命名标准,一个声明过的接口

    2023年04月08日
    浏览(40)
  • idea的git工具提交代码无法提交上去,git的代码检查

    在idea工具点击提交代码,进度条过了几秒钟后,又恢复到未提交状态,代码提交不上去。 由于此java文件是代码工具生成的,里面有3万行代码,而idea的git工具默认有打开代码检查Analyze Code,导致代码检查不通过,或者超时。 1. 点击这个小齿轮。  2. 把这个Analyze Code 关掉。

    2024年02月11日
    浏览(70)
  • CppCheck静态代码检查工具教程【Windows和Linux端】

    目录 1、背景 2、特性介绍 2.1、检查结果 2.2、检查范围 2.3、支持的检查规则(列举一些): 2.4、自定义规则 3、linux 端 4、windows 端         最近调研了几款 c/c++ 代码静态检查工具,包括 cppcheck、cpplint、cppdepend、splint、tscancode、sonaqube 等,对比后认为 cppcheck 使用起来最方

    2024年02月03日
    浏览(40)
  • SAP ABAP 代码调优检查工具及性能调优

    一:代码检查工具 ABAP 测试仪表盘(ATC) 所有检查工具, 豁免处理, 结果存储的中心 代码检查器 (SCI) 提供给客户,合作伙伴和SAP的做代码相关检查的开放式架构 扩展程序检查(SLIN) 扩展的代码检查,用来分析源代码 SAP NetWeaver 应用服务器,附加组件的代码漏洞分析器 安全漏洞的

    2024年02月10日
    浏览(41)
  • 基于misra-c-2012规则在vscode下集成cppcheck开源工具实现代码静态检查

    依赖工具: 1、cppcheck工具 2、vscode下安装C/C++ Advanced Lint扩展 3、python工具 双击后软件自行安装在:C:Program FilesCppcheck 添加系统路径步骤 2.1、在vscode软件中点击设置按钮,选择“设置”选项 2.2、搜索“@ext:jbenden.c-cpp-flylint”然后“settings.json”中编辑 2.3、在settings.json中添加这

    2024年02月09日
    浏览(44)
  • notepad++的Verilog语法检查(调用modelsim的语法)

    一、在modelsim中新建一个工程,然后写一个Verilog代码,然后编译,目的是为了得到此工程文件夹下的work文件。打开此工程的文件夹,找到work文件夹,复制到notepad++的安装路径下。   (图1.是我自己在D盘创建的一个文件夹project_mux,用来存放步骤一modelsim生成的文件,图2.可以

    2024年02月12日
    浏览(44)
  • Vue关闭语法检查

    在创建项目的时候,如果不小心开启了 eslint 语法检查,就会导致页面经常报错。 eslint 是一个 JavaScript 的效验插件,用来效验语法和代码的书写风格。 eslint 可以规范开发人员的代码。但是有些像缩进、空格、空行之类的规范,在开发过程中一直报错,有些过于苛刻。如果不

    2024年02月13日
    浏览(35)
  • CSS语法检查利器之csslint

    本文于2015年底完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。 前段时间研究使用 YUI Compressor 压缩项目里的js和css文件,研究了两天之后,终于在周三晚上把 YUI Compressor 集成进了打包流程中;于是周四(

    2024年02月04日
    浏览(34)
  • Java在线代码生成工具,支持JPA、Mybatis、MybatisPlus

    【Java代码生成神器】自动化生成Java实体类、代码、增删改查功能!点击访问 推荐一个自己每天都在用的Java代码生成器!这个网站支持在线生成Java代码,包含完整的ControllerServiceEntityDao代码,完整的增删改查功能! 还可以自定义自己的代码模板、自由配置高级选项,指定

    2024年02月19日
    浏览(41)
  • Windows支持诊断工具(MSDT)远程代码执行漏洞:CVE-2022-30190学习及复现

    Microsoft Windows Support Diagnostic Tool (MSDT) Remote Code Execution Vulnerability对应的cve编号为CVE-2022-30190,其能够在非管理员权限、禁用宏且在windows defender开启的情况下绕过防护,达到上线的效果。 当从Word等应用程序使用 URL 协议调用 MSDT 时存在远程执行代码漏洞,攻击者通过制作恶意的

    2024年02月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包