AtCoderの問題解きを楽にする1
以前から気になっていたのですが、
自動でサンプルを取得してテストしてくれるようなツールがあるとのこと。
Windows上に環境構築してみました。
...と思ったらうまくいかず。
環境汚したくないので、あきらめてWSL2+VsCodeを試してみることにします。
参考:
【WSL / WSL2】VSCode×WSLでWindows上にLinux開発環境を構築 - Qiita
以下墓場=========================================================
python環境用意
すでにWindows上にはpythonがインスコしてあったので、
改めてvenv環境を構築しました。
$ mkdir AtCoder $ cd AtCoder $ python -m venv venv
環境が出来上がったら、Activateできるか確認してみます。
.\activate : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts\Acti vate.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照し てください。 発生場所 行:1 文字:1 + .\activate + ~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts> Set-ExecutionPolicy RemoteSigned -Scope Process PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts> .\activate (venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts>
途中で権限周りのエラーが出たので、ググって出てきた対応方法で解決しました。
参考:PowerShellでvirtualenvを使うには - Qiita
この場合だと、activateするごとに指定が必要なようなので、今後のツール実行用のコマンドには引数を追加するようにします。
ツールインストール
pipで入れます。
(venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts> pip install online-judge-tools Collecting online-judge-tools Downloading online_judge_tools-11.0.0-py3-none-any.whl (42 kB) |████████████████████████████████| 42 kB 451 kB/s Collecting colorama<1,>=0.3 Using cached colorama-0.4.3-py2.py3-none-any.whl (15 kB) Collecting online-judge-api-client<11,>=10.3.0 Downloading online_judge_api_client-10.4.0-py3-none-any.whl (169 kB) |████████████████████████████████| 169 kB 2.2 MB/s Collecting diff-match-patch>=20181111 Downloading diff_match_patch-20200713-py3-none-any.whl (61 kB) |████████████████████████████████| 61 kB 88 kB/s Collecting requests<3,>=2 Downloading requests-2.24.0-py2.py3-none-any.whl (61 kB) |████████████████████████████████| 61 kB 157 kB/s Collecting jsonschema>=3.2 Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB) |████████████████████████████████| 56 kB 1.3 MB/s Collecting appdirs>=1 Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB) Collecting colorlog>=4.1.0 Downloading colorlog-4.2.1-py2.py3-none-any.whl (14 kB) Collecting beautifulsoup4>=4 Downloading beautifulsoup4-4.9.2-py3-none-any.whl (115 kB) |████████████████████████████████| 115 kB 3.2 MB/s Collecting lxml>=4 Downloading lxml-4.5.2-cp38-cp38-win32.whl (3.2 MB) |████████████████████████████████| 3.2 MB 3.2 MB/s Collecting toml>=0.10 Using cached toml-0.10.1-py2.py3-none-any.whl (19 kB) Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 Downloading urllib3-1.25.10-py2.py3-none-any.whl (127 kB) |████████████████████████████████| 127 kB 6.8 MB/s Collecting certifi>=2017.4.17 Downloading certifi-2020.6.20-py2.py3-none-any.whl (156 kB) |████████████████████████████████| 156 kB 3.3 MB/s Collecting chardet<4,>=3.0.2 Downloading chardet-3.0.4-py2.py3-none-any.whl (133 kB) |████████████████████████████████| 133 kB 3.2 MB/s Collecting idna<3,>=2.5 Downloading idna-2.10-py2.py3-none-any.whl (58 kB) |████████████████████████████████| 58 kB 1.7 MB/s Collecting six>=1.11.0 Using cached six-1.15.0-py2.py3-none-any.whl (10 kB) Requirement already satisfied: setuptools in c:\users\syach\documents\workspace\atcoder\venv\lib\site-packages (from jsonschema>=3.2->online-judge-api-client<11,>=10.3.0->online-judge-tools) (47.1.0) Collecting pyrsistent>=0.14.0 Downloading pyrsistent-0.17.3.tar.gz (106 kB) |████████████████████████████████| 106 kB 2.2 MB/s Collecting attrs>=17.4.0 Downloading attrs-20.2.0-py2.py3-none-any.whl (48 kB) |████████████████████████████████| 48 kB 2.2 MB/s Collecting soupsieve>1.2; python_version >= "3.0" Downloading soupsieve-2.0.1-py3-none-any.whl (32 kB) Using legacy setup.py install for pyrsistent, since package 'wheel' is not installed. Installing collected packages: colorama, six, pyrsistent, attrs, jsonschema, appdirs, urllib3, certifi, chardet, idna, requests, colorlog, soupsieve, beautifulsoup4, lxml, toml, online-judge-api-client, diff-match-patch, online-judge-tools Running setup.py install for pyrsistent ... done Successfully installed appdirs-1.4.4 attrs-20.2.0 beautifulsoup4-4.9.2 certifi-2020.6.20 chardet-3.0.4 colorama-0.4.3 colorlog-4.2.1 diff-match-patch-20200713 idna-2.10 jsonschema-3.2.0 lxml-4.5.2 online-judge-api-client-10.4.0 online-judge-tools-11.0.0 pyrsistent-0.17.3 requests-2.24.0 six-1.15.0 soupsieve-2.0.1 toml-0.10.1 urllib3-1.25.10 WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available. You should consider upgrading via the 'c:\users\syach\documents\workspace\atcoder\venv\scripts\python.exe -m pip install --upgrade pip' command. (venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts>
設定
ログインします。
(venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts> oj login -u user -p pswd "https://atcoder.jp/" [INFO] GET: https://pypi.org/pypi/online-judge-tools/json [INFO] 200 OK [WARNING] failed to load the cache in update checking: 'online-judge-api-client' [INFO] GET: https://pypi.org/pypi/online-judge-api-client/json [INFO] 200 OK [INFO] online-judge-tools 11.0.0 (+ online-judge-api-client 10.4.0) [INFO] service recognized: AtCoderService.from_url('https://atcoder.jp/'): https://atcoder.jp/ [NETWORK] GET: https://atcoder.jp/contests/agc001/submit [NETWORK] 302 Found [FAILURE] You are not signed in. [ERROR] Selenium is not installed. Please run $ pip3 install selenium [WARNING] Switch to use CUI-based login instead of Selenium [NETWORK] 302 Found [NETWORK] GET: https://atcoder.jp/login [NETWORK] 200 OK [NETWORK] POST: https://atcoder.jp/login [NETWORK] redirected to: https://atcoder.jp/home [NETWORK] 200 OK [WARNING] AtCoder says: × Welcome, syachineko2. [INFO] Welcome, [NETWORK] GET: https://atcoder.jp/contests/agc001/submit [NETWORK] 200 OK [SUCCESS] You have already signed in. [INFO] save cookie to: C:\Users\syach\AppData\Local\online-judge-tools\online-judge-tools\cookie.jar (venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts> oj login --check "https://atcoder.jp/" [INFO] online-judge-tools 11.0.0 (+ online-judge-api-client 10.4.0) [INFO] service recognized: AtCoderService.from_url('https://atcoder.jp/'): https://atcoder.jp/ [INFO] load cookie from: C:\Users\syach\AppData\Local\online-judge-tools\online-judge-tools\cookie.jar [NETWORK] GET: https://atcoder.jp/contests/agc001/submit [NETWORK] 200 OK [SUCCESS] You have already signed in. [INFO] save cookie to: C:\Users\syach\AppData\Local\online-judge-tools\online-judge-tools\cookie.jar (venv) PS C:\Users\syach\Documents\workspace\AtCoder\venv\Scripts>
エラー出てたのでseleniumも入れます。
(venv) PS C:\Users\syach\Documents\workspace\AtCoder> pip install selenium Collecting selenium Downloading selenium-3.141.0-py2.py3-none-any.whl (904 kB) |████████████████████████████████| 904 kB 3.2 MB/s Requirement already satisfied: urllib3 in c:\users\syach\documents\workspace\atcoder\venv\lib\site-packages (from selenium) (1.25.10) Installing collected packages: selenium Successfully installed selenium-3.141.0 WARNING: You are using pip version 20.1.1; however, version 20.2.3 is available. You should consider upgrading via the 'c:\users\syach\documents\workspace\atcoder\venv\scripts\python.exe -m pip install --upgrade pip' command. (venv) PS C:\Users\syach\Documents\workspace\AtCoder>
ただ、この先でうまくタスクの実行ができない・・・。