E501行太长(144>79个字符)

2024-06-16 09:37:07 发布

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

subprocess.check_output(['scrapy', 'crawl', 'mySpider', '-a', f'url={self.url}', '-a', f'nbrPage={self.pages}', '-o', 'test.json'])  # noqa

我将该行拆分为多行,得到的语法无效:

subprocess.check_output(['scrapy', 'crawl', 'mySpider',
                         '-a', f'url={self.url}', '-a', f'nbrPage={self.pages}', '-o', 'test.json'])

请问我该怎么修

第二版

完整代码:

import scrapy
import subprocess
import json
from flask import Flask, jsonify, request

class ClassSpider(scrapy.Spider):
    name        = 'mySpider'
    #pages      = 0
    news        = []

    def __init__(self, url, nbrPage):
        self.pages      = nbrPage
        self.start_urls = url

    def parse(self):
        ...

    def run(self):
        command_args = [
            'scrapy',
            'crawl',
            'mySpider',
            '-a',
            f'url={self.url}',  #I have this error: invalid syntax pyflakes
            '-a',
            f'nbrPage={self.pages}',
            '-o',
            'test.json'
        ]
        subprocess.check_output(command_args)
        return self.news

app = Flask(__name__)
data = []

@app.route('/', methods=['POST'])
def getNews():
    mySpiderClass = ClassSpider(request.json['url'], 2)

    data.append(mySpider.run())
    return jsonify({'data': data})

if __name__ == "__main__":
    app.run(debug=True)

在我添加注释的那一行,我有一个突出显示,表明我的语法无效

第三版

pip冻结的结果:

appdirs==1.4.4
applicationinsights==0.11.9
asgiref==3.2.7
astroid==2.4.1
astunparse==1.6.3
autopep8==1.5.3
backcall==0.1.0
backports.csv==1.0.7
bleach==3.1.5
cachetools==4.1.0
certifi==2020.4.5.1
chardet==3.0.4
cli-helpers==0.2.3
Click==7.0
configobj==5.0.6
decorator==4.4.2
distlib==0.3.0
Django==3.0.6
enum34==1.1.10
filelock==3.0.12
flake8==3.8.2
Flask==1.1.2
Flask-PyMongo==2.3.0
future==0.18.2
gast==0.3.3
google-api-core==1.17.0
google-api-python-client==1.9.1
google-auth==1.16.0
google-auth-httplib2==0.0.3
google-auth-oauthlib==0.4.1
google-cloud-bigquery==1.24.0
google-cloud-core==1.3.0
google-cloud-datastore==1.12.0
google-cloud-language==1.3.0
google-cloud-logging==1.15.0
google-cloud-spanner==1.17.0
google-cloud-storage==1.28.1
google-cloud-translate==2.0.1
google-cloud-videointelligence==1.14.0
google-cloud-vision==1.0.0
google-pasta==0.2.0
google-resumable-media==0.5.0
googleapis-common-protos==1.51.0
grpc-google-iam-v1==0.12.3
grpcio==1.29.0
h5py==2.10.0
httplib2==0.18.1
humanize==2.4.0
idna==2.9
importlib-metadata==1.6.0
ipython==7.15.0
ipython-genutils==0.2.0
isort==4.3.21
itsdangerous==1.1.0
jedi==0.17.0
Jinja2==2.11.2
Keras-Preprocessing==1.1.2
lazy-object-proxy==1.4.3
Markdown==3.2.2
MarkupSafe==1.1.1
mccabe==0.6.1
mssql-cli==1.0.0
mypy==0.770
mypy-extensions==0.4.3
numpy==1.18.4
oauth2client==4.1.3
oauthlib==3.1.0
opt-einsum==3.2.1
packaging==20.4
parso==0.7.0
pexpect==4.8.0
pickleshare==0.7.5
pluggy==0.13.1
prompt-toolkit==3.0.5
protobuf==3.12.2
psycopg2==2.8.5
ptyprocess==0.6.0
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycodestyle==2.6.0
pydocstyle==5.0.2
pyflakes==2.2.0
Pygments==2.6.1
pylint==2.5.2
pyls-mypy==0.1.8
pymongo==3.10.1
pyparsing==2.4.7
python-dateutil==2.8.1
python-jsonrpc-server==0.3.4
python-language-server==0.33.0
pytz==2020.1
PyYAML==5.3.1
requests==2.23.0
requests-oauthlib==1.3.0
rope==0.17.0
rsa==4.0
scipy==1.4.1
six==1.15.0
snowballstemmer==2.0.0
sqlparse==0.2.4
tensorboard==2.2.2
tensorboard-plugin-wit==1.6.0.post3
tensorflow==2.2.0
tensorflow-estimator==2.2.0
termcolor==1.1.0
terminaltables==3.1.0
toml==0.10.1
traitlets==4.3.3
typed-ast==1.4.1
typing-extensions==3.7.4.2
ujson==1.35
uritemplate==3.0.1
urllib3==1.25.9
virtualenv==20.0.21
wcwidth==0.2.3
webencodings==0.5.1
Werkzeug==1.0.1
wrapt==1.12.1
yapf==0.30.0
zipp==3.1.0

Tags: importselfjsoncloudurlflaskdatadef
1条回答
网友
1楼 · 发布于 2024-06-16 09:37:07

我无法真正发现您所写内容中的错误,但避免此类无效sytnax(如缩进错误)的一个良好做法是将内容拆分:

command_args = [
    'scrapy',
    'crawl',
    'mySpider',
    '-a',
    f'url={self.url}',
    '-a',
    f'nbrPage={self.pages}',
    '-o',
    'test.json'
]
subprocess.check_output(command_args)

它更加清晰,如果您使用git并更改一个参数,那么就更容易发现差异

而且可读性更高,我认为这样调试会更清晰

相关问题 更多 >