TeamCity和pyflakes
TeamCity是一款由JetBrains公司開發的持續集成和部署工具,它提供了豐富的功能來幫助團隊協作進行軟體開發,其中包括代碼檢查、自動化構建、測驗運行、版本控制等多個方面,
在我們團隊中使用TeamCity進行配合pyflakes代碼檢查,我們需要升級pyflakes到支持python3,同時保留python2的語法檢查功能,
在Teamcity中修改python腳本后,無需重啟teamcity即可生效,
pyflakes語法檢查同時支持python2/3

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中
-
C:\Python38
-
C:\Python38\Scripts
同時不要把這幾個目錄添加到環境變數的path中
-
C:\Users\zhaoqingqing01\AppData\Local\Programs\Python\Python38\
-
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.uj5u.com/qita/554279.html
標籤:其他
下一篇:返回列表
