pythonanywhereでrequirements.txtに怒濤のエラー爆撃をされた...


DjangoをDjangoGirlsでお勉強。
pythonanywhereを用いてデプロイをするみたい。
とりあえず、pip freeze > requirements.txtでrequirements.txtに仮想環境のライブラリ情報を書き出した。
いつも通りgitにpushし、いざpythonanywhereへ。
書いてある通りpip3.6 install --user pythonanywhereからのpa_autoconfigure_django.py --python=3.6 {githubのcloneURL}

< Running API sanity checks >
   \
    ~<:>>>>>>>>>
Cloning into '/home/username/username.pythonanywhere.com'...
remote: Enumerating objects: 51, done.
remote: Counting objects: 100% (51/51), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 51 (delta 11), reused 47 (delta 7), pack-reused 0
Unpacking objects: 100% (51/51), 11.61 KiB | 8.00 KiB/s, done.
< Creating virtualenv with Python3.6 >
   \
    ~<:>>>>>>>>>
Removing username.pythonanywhere.com...
created virtual environment CPython3.6.13.final.0-64 in 18168ms
  creator CPython3Posix(dest=/home/username/.virtualenvs/username.pythonanywhere.com, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/username/.local/share/virtualenv)
    added seed packages: pip==21.1.2, setuptools==57.0.0, wheel==0.36.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
virtualenvwrapper.user_scripts creating /home/username/.virtualenvs/username.pythonanywhere.com/bin/predeactivate
virtualenvwrapper.user_scripts creating /home/username/.virtualenvs/username.pythonanywhere.com/bin/postdeactivate
virtualenvwrapper.user_scripts creating /home/username/.virtualenvs/username.pythonanywhere.com/bin/preactivate
virtualenvwrapper.user_scripts creating /home/username/.virtualenvs/username.pythonanywhere.com/bin/postactivate
virtualenvwrapper.user_scripts creating /home/username/.virtualenvs/username.pythonanywhere.com/bin/get_env_details

うん順調。

  ___________________________________________________________________
/                                                                     \
| Pip installing -r                                                   |
| /home/username/username.pythonanywhere.com/requirements.txt (this may |
| take a couple of minutes)                                           |
\                                                                     /
  -------------------------------------------------------------------
   \
    ~<:>>>>>>>>>
Looking in links: /usr/share/pip-wheels

( ^ω^)おっライブラリのインストールかな。時間かかるポイ。

あっ....なんか失敗したっぽい...バージョンが見つからないってどゆこと...分けわからん数字が並んでる...うげぇぇぇ...

原因

要求するライブラリバージョンがpythonanywhereでは非対応だったらしい。
原因分かった後にエラー文読んだらそりゃそうだと思った。

解決方法

エラー文のfrom versions:以降に記載されてる任意のバージョンをrequirements.txtに追加した。

asgiref >= 3.4.0, <=3.5.0

こんな感じ。3.4.0以上3.5.0以下を求むという意味らしい。
もう一度pa_autoconfigure_django.py --python=3.6 {githubのcloneURL}やって無事起動できました。

※説明のため省きましたがDjangoバージョンにも難癖つけられました。

ERROR: Could not find a version that satisfies the requirement Django==4.0.3 (from versions: 1.1.3, 1.1.4, 1.2, 1.2.1, 1.2.2, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.3, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 1.3.6, 1
.3.7, 1.4, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5, 1.4.6, 1.4.7, 1.4.8, 1.4.9, 1.4.10, 1.4.11, 1.4.12, 1.4.13, 1.4.14, 1.4.15, 1.4.16, 1.4.17, 1.4.18, 1.4.19, 1.4.20, 1.4.21, 1.4.22, 1.5, 1.5.1, 1.5.2, 1.5.3, 1.5.4
, 1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.5.10, 1.5.11, 1.5.12, 1.6, 1.6.1, 1.6.2, 1.6.3, 1.6.4, 1.6.5, 1.6.6, 1.6.7, 1.6.8, 1.6.9, 1.6.10, 1.6.11, 1.7, 1.7.1, 1.7.2, 1.7.3, 1.7.4, 1.7.5, 1.7.6, 1.7.7, 1.7.8, 1.7
.9, 1.7.10, 1.7.11, 1.8a1, 1.8b1, 1.8b2, 1.8rc1, 1.8, 1.8.1, 1.8.2, 1.8.3, 1.8.4, 1.8.5, 1.8.6, 1.8.7, 1.8.8, 1.8.9, 1.8.10, 1.8.11, 1.8.12, 1.8.13, 1.8.14, 1.8.15, 1.8.16, 1.8.17, 1.8.18, 1.8.19, 1.9a1, 1.9b1
, 1.9rc1, 1.9rc2, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.9.5, 1.9.6, 1.9.7, 1.9.8, 1.9.9, 1.9.10, 1.9.11, 1.9.12, 1.9.13, 1.10a1, 1.10b1, 1.10rc1, 1.10, 1.10.1, 1.10.2, 1.10.3, 1.10.4, 1.10.5, 1.10.6, 1.10.7, 1.10
.8, 1.11a1, 1.11b1, 1.11rc1, 1.11, 1.11.1, 1.11.2, 1.11.3, 1.11.4, 1.11.5, 1.11.6, 1.11.7, 1.11.8, 1.11.9, 1.11.10, 1.11.11, 1.11.12, 1.11.13, 1.11.14, 1.11.15, 1.11.16, 1.11.17, 1.11.18, 1.11.20, 1.11.21, 1.1
1.22, 1.11.23, 1.11.24, 1.11.25, 1.11.26, 1.11.27, 1.11.28, 1.11.29, 2.0a1, 2.0b1, 2.0rc1, 2.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6, 2.0.7, 2.0.8, 2.0.9, 2.0.10, 2.0.12, 2.0.13, 2.1a1, 2.1b1, 2.1rc1, 2.1,
 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.7, 2.1.8, 2.1.9, 2.1.10, 2.1.11, 2.1.12, 2.1.13, 2.1.14, 2.1.15, 2.2a1, 2.2b1, 2.2rc1, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.2.6, 2.2.7, 2.2.8, 2.2.9, 2.2.10, 2.2.11
, 2.2.12, 2.2.13, 2.2.14, 2.2.15, 2.2.16, 2.2.17, 2.2.18, 2.2.19, 2.2.20, 2.2.21, 2.2.22, 2.2.23, 2.2.24, 2.2.25, 2.2.26, 2.2.27, 3.0a1, 3.0b1, 3.0rc1, 3.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, 3.0.7, 3.0
.8, 3.0.9, 3.0.10, 3.0.11, 3.0.12, 3.0.13, 3.0.14, 3.1a1, 3.1b1, 3.1rc1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.8, 3.1.9, 3.1.10, 3.1.11, 3.1.12, 3.1.13, 3.1.14, 3.2a1, 3.2b1, 3.2rc1, 3.2, 3
.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.2.7, 3.2.8, 3.2.9, 3.2.10, 3.2.11, 3.2.12)
ERROR: No matching distribution found for Django==4.0.3

最終的に自分のrequirements.txtはこうなった。

asgiref >= 3.4.0, <=3.5.0
backports.zoneinfo==0.2.1
Django >= 3.2.0, <=4.0.3
sqlparse==0.4.2
tzdata==2022.1