AtCoder-cli(online-judge-tools)を導入しようとして詰まった
TL;DR
なんかOpenSSLのバージョン関係で詰まったが、urllib3のバージョンを2.x => 1.xにしたらいけた。
AtCoder-cliを導入しようとして詰まった
2ヶ月弱くらい何も分からないながらABCに参加していて、そろそろ手元でテストとか提出とかできるように整備したいなと思った。
そこで、この辺りの情報を参考にさせていただいて導入を進めたものの、少々詰まってしまったので備忘録として残しておく。
どう詰まったか
online-judge-toolsをpip install
し、Successしたのでoj -h
で動作確認しようとしたところ下記のエラーになった。
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with LibreSSL 2.8.3. See: https://github.com/urllib3/urllib3/issues/2168
環境構築時のエラーには未だに冷静でいられない。。
Issueを読む
See: https://github.com/urllib3/urllib3/issues/2168
とあるので、とりあえずは見てみる。
OpenSSLとurllib3についての記述があり、このIssueでこのエラーが追加されたことがわかる。
多分OpenSSLのバージョンの話だと思う。
試行錯誤
OpenSSLのバージョンを上げる
Mac OSに入っていたsslをそのまま使っていたのでHomebrew経由でインストールし、それを使用するようにPATHも通したが、ダメだった。。
urllib3のバージョンを下げる
当該issueを見ると、urllib3 2.0以上を使っててOpen SSL<1.1.1だとまずいみたいなことが書いてある(と思う)。
そこで上ではOpenSSLのバージョンを上げたつもりだったが、特にエラーは変わらなかった。
なので試しにurllib3のバージョンを下げてみた。
pip3 install 'urllib3<2.0' (中略) oj -h usage: oj [-h] [-v] [-c COOKIE] [--version] {download,d,dl,login,l,submit,s,test,t,generate-output,g/o,generate-input,g/i,test-reactive,t/r,test-interactive,t/i} ... Tools for online judge services positional arguments: {download,d,dl,login,l,submit,s,test,t,generate-output,g/o,generate-input,g/i,test-reactive,t/r,test-interactive,t/i} for details, see "/Users/masa/Library/Python/3.9/bin/oj COMMAND --help" download (d, dl) download sample cases login (l) login to a service submit (s) submit your solution test (t) test your code generate-output (g/o) generate output files from input and reference implementation generate-input (g/i) generate input files from given generator test-reactive (t/r, test-interactive, t/i) test for interactive problem optional arguments: -h, --help show this help message and exit -v, --verbose -c COOKIE, --cookie COOKIE path to cookie. (default: /Users/masa/Library/Application Support/online-judge-tools/cookie.jar) --version print the online-judge-tools version number tips: The official tutorial exists on the web: https://github.com/online-judge-tools/oj/blob/master/docs/getting-started.md
あれ、できたぞ?
できた
OpenSSLのバージョンを上げてもダメだった理由がよくわかってないので、解説してくれる人がいたら嬉しいです。