web-dev-qa-db-fra.com

Pourquoi est-ce que je reçois cette erreur dans scrapy - syntaxe invalide avec python3.7

J'ai eu énormément de mal à installer Scrapy. Je l'ai installé sur mon mac, mais je reçois cette erreur lors de l'exécution du didacticiel:

Virtualenvs/scrapy_env/lib/python3.7/site-packages/twisted/conch/manhole.py", line 154
    def write(self, data, async=False):
                              ^
SyntaxError: invalid syntax

Je suis sur les dernières versions de tout ce que je peux dire. Le faire fonctionner a été une douleur. Sheesh. OS High Sierra 10.13.3 Python 3.7 A installé ipython J'ai mis à jour tout ce que je peux penser à la ligne de terminal de ________ est: 

scrapy Shell http://quotes.toscrape.com/random

ou scrapy Shell "http://quotes.toscrape.com/random" même essayé de guillemets simples. Toute aide est la bienvenue!

Voici le journal complet:

(scrapy_env) XXX-MacBook-Pro:Virtualenvs ComputerName$ scrapy Shell http://quotes.toscrape.com/random
2018-02-19 06:38:53 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: scrapybot)
2018-02-19 06:38:53 [scrapy.utils.log] INFO: Versions: lxml 3.6.2.0, libxml2 2.9.4, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 17.9.0, Python 3.7.0a2 (v3.7.0a2:f7ac4fe52a, Oct 16 2017, 21:11:18) - [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)], pyOpenSSL 17.5.0 (OpenSSL 1.0.2n  7 Dec 2017), cryptography 2.1.4, Platform Darwin-17.4.0-x86_64-i386-64bit
2018-02-19 06:38:53 [scrapy.crawler] INFO: Overridden settings: {'DUPEFILTER_CLASS': 'scrapy.dupefilters.BaseDupeFilter', 'LOGSTATS_INTERVAL': 0}
Traceback (most recent call last):
  File "/Users/ComputerName/Virtualenvs/scrapy_env/bin/scrapy", line 11, in <module>
    load_entry_point('Scrapy==1.5.0', 'console_scripts', 'scrapy')()
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/cmdline.py", line 150, in execute
    _run_print_help(parser, _run_command, cmd, args, opts)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/cmdline.py", line 90, in _run_print_help
    func(*a, **kw)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/cmdline.py", line 157, in _run_command
    cmd.run(args, opts)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/commands/Shell.py", line 65, in run
    crawler = self.crawler_process._create_crawler(spidercls)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/crawler.py", line 203, in _create_crawler
    return Crawler(spidercls, self.settings)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/crawler.py", line 55, in __init__
    self.extensions = ExtensionManager.from_crawler(self)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/middleware.py", line 58, in from_crawler
    return cls.from_settings(crawler.settings, crawler)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/middleware.py", line 34, in from_settings
    mwcls = load_object(clspath)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/utils/misc.py", line 44, in load_object
    mod = import_module(module)
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 680, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/Scrapy-1.5.0-py3.7.Egg/scrapy/extensions/telnet.py", line 12, in <module>
    from twisted.conch import manhole, telnet
  File "/Users/ComputerName/Virtualenvs/scrapy_env/lib/python3.7/site-packages/twisted/conch/manhole.py", line 154
    def write(self, data, async=False):
                              ^
SyntaxError: invalid syntax
(scrapy_env) XXX-MacBook-Pro:Virtualenvs ComputerName$
10
user3408397

tu peux faire 

pip install git+https://github.com/twisted/twisted.git@trunk

parce que la branche 'trunk' avait déjà fusionné le correctif '9384-remove-async-param'

vous pouvez voir dans https://github.com/twisted/twisted/pull/966

17
孙欣乐

Il s'avère que async et wait sont des mots-clés dans python 3.7. C'est pourquoi une erreur de syntaxe. C'est de l'utilisateur stranac. Installé nouveau virtualenv ciblant 2.7 et n'a eu aucun problème avec l'installation de scrapy ou running bench/Shell.

3
user3408397

Vous pouvez remplacer le mot asynchrone par isAsync dans un fichier torsadé.

Accédez au fichier "trou d'homme" Python37\Lib\site-packages\twisted\conch edit et remplacez le paramètre "async" par "isAsync".

0
maru_mac