Windows10+pipenv環境にscrapyをインストールする

スポンサーリンク

[実行環境]
Win10
python 3.7.7(64bit)
pip 20.1.1
pipenv 2020.6.2
scrapy 1.8.0

せっかくAnacondaを使ってScrapyをインストールしたのに、もう一度pipenvでやり直そうと思ったのは、結局Windowsにscrapyがインストールしにくいのはバージョンの問題ではないかと思ったからです。
これまで、Win10環境に最新のscrapyをインストールしようとして色々と試行錯誤してきましたがうまくいきませんでした。
Anacondaと同じようなscrapyバージョンの組み合わせを使えば(つまりある程度ダウングレードさせれば)インストールできるじゃないかと考えたからです。

pip installで空っぽのバージョンを指定をすると、そのパッケージのバージョン一覧が表示される。

> pip install scrapy==
ERROR: Could not find a version that satisfies the requirement scrapy== (from versions: 0.7, 0.8, 0.9, 0.10.4.2364, 0.12.0.2550, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.18.0, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.20.0, 0.20.1, 0.20.2, 0.22.0, 0.22.1, 0.22.2, 0.24.0, 0.24.1, 0.24.2, 0.24.3, 0.24.4, 0.24.5, 0.24.6, 1.0.0rc1, 1.0.0rc2, 1.0.0rc3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.1.0rc1, 1.1.0rc2, 1.1.0rc3, 1.1.0rc4, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.2.0, 1.2.1, 1.2.2, 1.2.3, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.4.0, 1.5.0, 1.5.1, 1.5.2, 1.6.0, 1.7.0, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.8.0, 2.0.0, 2.0.1, 2.1.0)
ERROR: No matching distribution found for scrapy==

今回は1系の最後、scrapy1.8.0をインストールしてみます。

> mkdir scrapy_project
> cd scrapy_project
> pipenv install scrapy==1.8.0
Creating a virtualenv for this project…
...略...
Successfully created virtual environment!
Virtualenv location: C:\workspace\scrapy_project\.venv
Creating a Pipfile for this project…
Installing scrapy==1.8.0…
Adding scrapy to Pipfile's [packages]…
Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
 Locking...Building requirements...
Resolving dependencies...
Success!
Updated Pipfile.lock (78a901)!
Installing dependencies from Pipfile.lock (78a901)…
  ================================ 0/0 - 00:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

あっさりインストール成功。
Win10とpython3.8.4とscrapy2.1.0の組み合わせでは、ここがまずクリアできませんでした(C++コンパイラとかもインストール済みだったのに)

プロジェクト作成。

> pipenv shell
(.venv) > scrapy startproject scrapy_tutorial
...略...

サンプルスパイダー作成。

(.venv) > cd scrapy_tutorial
(.venv) > scrapy genspider quotes quotes.toscrape.com
...略...

クローリング。

(.venv) > scrapy crawl quotes
2020-06-18 10:21:13 [scrapy.utils.log] INFO: Scrapy 1.8.0 started (bot: scrapy_tutorial)
...略...

問題ないようです。