Meaningless days

自分が書きたいことを適当に書くだけ

Python3.7でScrapyが動かないことから始まるアレコレ

Python3.7でScrapyが動かない

今更ながらPython3.7が先日リリースされました。リリースされた際の資料は以下になります。 (https://www.python.org/downloads/release/python-370/)

外部モジュール系のアップデート対応はに関してTwitterとかの情報で「〇〇が動かない!」的な話がなかったので大丈夫だろうと思ってましたが、どうやらPython3.7+Scrapyについては依存している外部モジュールに不具合があるようでチュートリアルを動かしてみると以下のようなSyntaxErrorとなってしまうそうです。

/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

Python3.6に戻したい

自分の環境はOSXのHighSierraで基本的に環境構築はHomebrew+Python標準のvenvを用いてプロジェクトごとに仮想環境を作成して管理しておりました。自分は標準モジュールのvenvでもかつてのpyenvと同様にPythonの任意のバージョンを入れることができると勘違いしていましたができないようでした。

そこで、Homebrewで下位のバージョンがインストールできないのかなと思って調べたところ下記のコマンドでインストールできました。

brew switch python [欲しいバージョン]
python3 --version # 3.6.6になりました

これで改めてチュートリアル通りコードを記述して以下のコマンドを実行します。

scrapy crawl quotes

そうすると今度はきちんとコマンドが終了して、スクレイピングが終了しました。

やったね!

以上、皆さんも楽しいスクレイピングライフを!