技術書のサンプルコードが動かないときの対処法
この記事は約 6 分で読めます。
サンプルコードが動かないのは「あるある」
技術書のサンプルコードを打ち込んで実行したら、エラーが出て動かない。初心者にとってこれほど心が折れる瞬間はありません。「自分のやり方が間違っているのか」「この本がダメなのか」と不安になります。
安心してください。技術書のサンプルコードが一発で動かないのは、むしろ普通のことです。原因はほぼ決まっていて、対処法も確立されています。
原因 1: バージョンの違い
最も多い原因です。本が書かれた時点のライブラリやフレームワークのバージョンと、あなたの環境にインストールされているバージョンが異なると、API の変更や非推奨化によってコードが動かなくなります。
対処法
まず、本の「はじめに」や「環境構築」の章に記載されているバージョンを確認します。多くの技術書は、使用した言語やライブラリのバージョンを明記しています。
次に、自分の環境のバージョンを確認します。python --version、node --version、ruby --version など、言語ごとのコマンドで確認できます。
バージョンが異なる場合、2 つの選択肢があります。
- 本と同じバージョンに合わせる:
nvm、pyenv、rbenvなどのバージョン管理ツールを使えば、複数のバージョンを共存させられます - 最新バージョンのまま、変更点を調べて修正する: ライブラリの公式ドキュメントの「マイグレーションガイド」や「CHANGELOG」に、API の変更点が記載されています
初心者には 1 の方法をおすすめします。本の内容に集中するために、環境は本と揃えるのが最も確実です。
原因 2: 写し間違い
手で打ち込む場合、タイプミスは避けられません。特に以下の文字は間違いやすいです。
0(ゼロ) とO(オー)1(イチ) とl(エル):(コロン) と;(セミコロン)'(シングルクォート) と`(バッククォート)- 全角スペースと半角スペース
対処法
エラーメッセージが指す行番号の前後を、本のコードと 1 文字ずつ照合します。面倒ですが、これが最も確実です。
プログラミングの入門書の多くは、出版社のサイトからサンプルコードをダウンロードできます。手入力で動かない場合は、ダウンロードしたコードと自分のコードを差分比較 (diff) してみてください。
原因 3: 環境の違い
OS の違い (Windows / macOS / Linux)、パスの区切り文字 (\ と /)、改行コード (CRLF と LF)、文字エンコーディング。これらの環境差異がエラーの原因になることがあります。
対処法
本が想定している OS を確認し、可能であれば同じ OS で試します。Docker を使えば、OS の違いを吸収できる場合もあります。
パスの問題は、エラーメッセージに「file not found」や「No such file or directory」が含まれていれば疑ってください。
原因 4: 本の誤植
技術書にも誤植はあります。特にコードブロック内の誤植は、読んでいるだけでは気づきにくく、実行して初めて発覚します。
対処法
出版社のサイトで正誤表 (errata) を確認します。多くの出版社は、読者からの報告を受けて正誤表を公開しています。「書名 正誤表」で検索すれば見つかります。
正誤表にも載っていない場合は、本の GitHub リポジトリ (あれば) の Issues を確認します。同じ問題に遭遇した読者が報告していることがあります。
エラーメッセージは敵ではなく味方
エラーメッセージを読む習慣をつけてください。「エラーが出た」で思考停止するのではなく、メッセージの中身を読めば、原因の 8 割は特定できます。
特に以下の情報に注目します。
- エラーの種類:
SyntaxErrorなら文法ミス、ImportErrorならモジュールの問題、TypeErrorなら型の不一致 - 行番号: エラーが発生した行、またはその直前の行に原因がある
- エラーメッセージの英文: そのままコピーして検索すれば、同じ問題の解決策が見つかることが多い
関連記事
まとめ
技術書のサンプルコードが動かない原因は、バージョン違い、写し間違い、環境差異、誤植の 4 つに集約されます。エラーメッセージを読み、バージョンを確認し、正誤表をチェックする。この手順を踏めば、ほとんどの問題は自力で解決できます。動かないコードと格闘する時間は、実はエンジニアとしての問題解決力を鍛える貴重な学習機会でもあります。
この記事は役に立ちましたか?
関連用語
関連記事
本に出てくるサンプルコードは動かしてみよう
本に載っているサンプルコードは、読むだけでなく実際に動かすと理解度が段違いに上がります。動かし方のコツと、うまくいかないときの対処法を紹介します。
技術書の情報が古くなったときの対処法
技術書の内容が古くなったときの対処法を紹介。古くなる部分と古くならない部分の見分け方、購入前の鮮度チェック方法を解説します。
本を読む前にパソコンの準備をしておこう
プログラミングの本を読み始めてから「環境構築ができない」と詰まる人が多いです。本を開く前にやっておくべき準備を、初心者向けにわかりやすく説明します。
写経を超える - 技術書のコードを自分のプロジェクトに応用する方法
技術書のサンプルコードを写経するだけでは実力は伸びません。書籍のコードを自分のプロジェクトに応用し、実務で使える力に変える 5 つのステップを解説します。
エラーメッセージを読めるエンジニアは何が違うのか
エラーが出たときに冷静に原因を特定できる人と、パニックになる人。その差は経験だけでなく、読んできた本の種類にあります。デバッグ力を支える読書の傾向を分析します。
本についてくるダウンロード素材を使い倒す
プログラミングの本には、サンプルコードや素材のダウンロード特典がついていることがあります。この特典を活用するだけで、学習効率が大きく変わります。