使用Pylint时收到无效的语法错误,但代码运行正常

时间:2020-07-19 09:29:58

标签: python pylint

当我执行pylint main.py时,出现以下错误:

E: 7, 0: invalid syntax (<string>, line 7) (syntax-error)

# main.py

import os

repo = os.environ.get('GITHUB_REPOSITORY')
branch = os.environ.get('GITHUB_REF')
commit = os.environ.get('GITHUB_SHA')

commit_url = f'https://github.com/{repo}/commit/{commit}'
repo_url = f'https://github.com/{repo}/tree/{branch}'

print(commit_url, repo_url)

代码按预期运行,但是pylint给出了这个奇怪的错误。我在Ubuntu 18.04上使用Python 3.6.9。

2 个答案:

答案 0 :(得分:2)

PyLint似乎对您的f字符串(在3.6中引入)不满意,并且正在针对旧版本Python的语法进行验证。我会检查您使用的PyLint是否在与运行程序的Python相同的Python环境中运行。我猜想它是从系统Python运行的,而程序是从虚拟环境运行的。

对于pylint 2.5.3和Python 3.8.2,PyLint唯一的抱怨就是缺少模块文档字符串。

************* Module main
main.py:1:0: C0114: Missing module docstring (missing-module-docstring)

-----------------------------------
Your code has been rated at 8.57/10

答案 1 :(得分:0)

使用如下所示的.format方法

import os

repo = os.environ.get('GITHUB_REPOSITORY')
branch = os.environ.get('GITHUB_REF')
commit = os.environ.get('GITHUB_SHA')

commit_url = 'https://github.com/{}/commit/{}'.format(repo, commit)
repo_url = 'https://github.com/{}/tree/{}'.format(repo, branch)

print(commit_url, repo_url)

在这里检查,Python 3 returns "invalid syntax" when trying to perform string interpolation