💻

【AtCoder】CLIテストの環境構築

2024/07/07に公開

はじめに

こんにちは、Takeです。都内の自社開発企業でエンジニアとして働いています。

今回は、AtCoder CLI(atcoder-cli)と関連ツールのインストールおよび設定方法を解説します。以下の手順に従って、Pythonの環境を構築しました。(実際にはこんなスムーズに出来ていないです)

必要なツールのインストール

Node.jsとnpmのインストール

まず、Node.jsとnpmをインストールします。Node.jsのインストール方法は公式サイトを参考にしました。インストール後、NPMの設定を確認します。

$ npm config get prefix
/Users/username/.nodenv/versions/18.16.0

AtCoder CLIのインストール

次に、AtCoder CLIをグローバルインストールします。

$ npm install -g atcoder-cli

PATHの設定

インストールしたCLIツールを使用するために、PATHを設定します。

$ echo 'export PATH=$PATH:/Users/username/.nodenv/versions/18.16.0/bin' >> ~/.zshrc

$ source ~/.zshrc

AtCoder CLIの確認

AtCoder CLIが正しくインストールされたか確認します。

$ which acc
/Users/username/.nodenv/shims/acc

Pythonスクリプトの設定

ディレクトリの作成
AtCoder CLI用のPythonスクリプトディレクトリを作成します。

$ mkdir -p /Users/username/Library/Preferences/atcoder-cli-nodejs/python

テンプレートスクリプトの作成

以下の内容でテンプレートスクリプトを作成します。

$ echo 'print("Hello, AtCoder")' > /Users/username/Library/Preferences/atcoder-cli-nodejs/python/main.py

テンプレート設定ファイルの作成

以下の内容でテンプレート設定ファイルを作成します。

$ echo '{
  "task": {
      "program": [
          "main.py"
      ],
      "submit": "main.py"
  }
}' > /Users/username/Library/Preferences/atcoder-cli-nodejs/python/template.json

AtCoder CLIの設定ファイルの作成

必要に応じてconfig.jsonを編集します。以下の内容を追加しました。

$ nano /Users/username/Library/Preferences/atcoder-cli-nodejs/config.json
json
{
    "oj-path": "/Users/username/Library/Python/3.9/bin/oj",
    "default-contest-dirname-format": "{ContestID}",
    "default-task-dirname-format": "{tasklabel}",
    "default-test-dirname-format": "test",
    "default-task-choice": "all",
    "default-template": "python",
    "template": "python",
    "default-language": "5055"
}

Python依存パッケージのインストール

パッケージのインストール
AtCoder CLIで必要なPythonパッケージをインストールします。

$ pip install requests charset_normalizer chardet lxml beautifulsoup4

パッケージの再インストール

必要に応じてパッケージを再インストールします。

$ pip uninstall lxml beautifulsoup4
$ pip install lxml beautifulsoup4

AtCoder CLIの利用
AtCoder CLIにログイン
AtCoderにログインします。

$ acc login

コンテストの新規プロジェクト作成

AtCoder CLIを使用して新しいコンテストプロジェクトを作成します。

$ acc new abc101

エラー対処法

chardetモジュールが見つからないエラー

$ pip install chardet

lxmlパーサが見つからないエラー

$ pip install lxml

BeautifulSoupのエラー

$ pip install --force-reinstall beautifulsoup4

ojコマンドでのログイン
オンラインジャッジツールでAtCoderにログインします。

$ oj login https://atcoder.jp/
$ export PYTHONWARNINGS="ignore::urllib3.exceptions.NotOpenSSLWarning"

oj loginコマンドでのエラーは、再度ログインを試みるか、依存関係が正しくインストールされているか確認してください。

これでAtCoder CLIのテスト環境構築は完了です。次回は、これらのテストなどを実行するコマンドについて記載する予定です。

参考

http://tatamo.81.la/blog/2018/12/07/atcoder-cli-tutorial/

https://twoooooda.net/post/introduce-atcoder-cli/

https://openai.com/chatgpt/

最後に

ここまで読んでいただきありがとうございました!
今回の記事が良かったと思ったらぜひ「いいね」を押していただけると嬉しいです 🎉

noteでも記事を執筆していますので、ぜひチェックしてみてください。
https://note.com/take_lifelog/n/n58df7ce7af6f

他にもこのようなことについて記載しているのでお読みいただければ幸いです。

https://zenn.dev/take_tech/articles/275e5f4242973d

https://zenn.dev/take_tech/articles/374817f256ec9d

最後までお読みいただき、誠にありがとうございました!

Discussion