当我执行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。
答案 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