Jenkins/Sonarqub的Pylint错误

2024-10-03 23:24:43 发布

您现在位置:Python中文网/ 问答频道 /正文

当我试图扫描我的python项目时,从sonar扫描仪得到以下错误。我已经检查并安装了python,可以从命令行运行它。它似乎已正确添加到路径变量中。你知道这里发生了什么吗,或者要检查什么吗?Jenkins和sonarqube运行在同一台服务器上,如果这有帮助的话。在

无法运行程序“pylint”:错误=2,没有这样的文件或目录

> 10:21:19.572 INFO: Sensor PylintSensor [python]
10:21:19.585 INFO: ------------------------------------------------------------------------
10:21:19.585 INFO: EXECUTION FAILURE
10:21:19.585 INFO: ------------------------------------------------------------------------
10:21:19.585 INFO: Total time: 4.714s
10:21:19.715 INFO: Final Memory: 45M/213M
10:21:19.715 INFO: ------------------------------------------------------------------------
10:21:19.715 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Cannot analyse the file '/var/lib/jenkins/workspace/GoogleAnalytics-ETL/GoogleAnalytics-ETL/Authentication/__init__.py', details: 'org.sonar.api.utils.command.CommandException: java.io.IOException: Cannot run program "pylint": error=2, No such file or directory'
    at org.sonar.plugins.python.pylint.PylintSensor.execute(PylintSensor.java:85)
    at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.java:53)
    at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.java:88)
    at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:82)
    at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.java:68)
    at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.java:88)
    at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.java:180)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
    at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.java:288)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.java:283)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.java:261)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
    at org.sonar.scanner.task.ScanTask.execute(ScanTask.java:48)
    at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.java:84)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.java:121)
    at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.java:121)
    at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.java:116)
    at org.sonar.batch.bootstrapper.Batch.executeTask(Batch.java:111)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:63)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
    at com.sun.proxy.$Proxy0.execute(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:233)
    at org.sonarsource.scanner.api.EmbeddedScanner.runAnalysis(EmbeddedScanner.java:151)
    at org.sonarsource.scanner.cli.Main.runAnalysis(Main.java:123)
    at org.sonarsource.scanner.cli.Main.execute(Main.java:77)
    at org.sonarsource.scanner.cli.Main.main(Main.java:61)
Caused by: org.sonar.api.utils.command.CommandException: java.io.IOException: Cannot run program "pylint": error=2, No such file or directory
    at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:102)
    at org.sonar.plugins.python.pylint.PylintArguments.pylintVersion(PylintArguments.java:45)
    at org.sonar.plugins.python.pylint.PylintArguments.<init>(PylintArguments.java:37)
    at org.sonar.plugins.python.pylint.PylintIssuesAnalyzer.<init>(PylintIssuesAnalyzer.java:47)
    at org.sonar.plugins.python.pylint.PylintSensor.analyzeFile(PylintSensor.java:96)
    at org.sonar.plugins.python.pylint.PylintSensor.execute(PylintSensor.java:75)
    ... 32 more
Caused by: java.io.IOException: Cannot run program "pylint": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
    at org.sonar.api.utils.command.CommandExecutor.execute(CommandExecutor.java:74)
    ... 37 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:247)
    at java.lang.ProcessImpl.start(ProcessImpl.java:134)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
    ... 38 more
10:21:19.717 DEBUG: Execution getVersion
10:21:19.717 DEBUG: Execution stop
[Pipeline] }
[Pipeline] // withSonarQubeEnv
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
ERROR: script returned exit code 1
Finished: FAILURE

jenkins/sonarqube服务器上pylint version命令的输出

^{pr2}$

Tags: orginfoapilangexecutepipelinepluginsjava
2条回答

Sonapython无法执行“pylint”进程。在

您应该尝试找到“pylint”可执行文件,例如:

> which pylint
/usr/local/bin/pylint

然后使用sonar.python.pylint属性,例如:

^{pr2}$

文档:Pylint Report

如果有'sonar.python.pylint属性,Sonapython仍然无法启动pylint。然后,您可以在SonarScanner之前运行pylint,并使用sonar.python.pylint.reportPath属性,例如:

 sonar.python.pylint.reportPath=pylint-reports/pylint-result-*.txt

创建一个名为sonar的文件-项目.属性具有以上属性:

sonar.projectKey=br.com.appexample
sonar.projectName=appexample
sonar.projectVersion=1.0
sonar.sources=.
sonar.language=py
sonar.sourceEncoding=UTF-8
sonar.python.pylint.reportPath=pylint-report.txt

请注意,所有报告都将写在pylint上-报告.txt

和詹金斯一起跑:

^{pr2}$

之后,你可以派派林特-报告.txt到你的声纳里去看看这个docker图像https://github.com/spujadas/sonar-runner-docker

相关问题 更多 >