医療系Pythonサポーター(個人事業OguLinks代表)の小倉です。
医療系のPythonプログラミングについて相談を受けたり、開発をしたりしています。
Pythonに限らずではありますが、自分のやってみたい内容に近い記事を見つけてきて、それを参考に指示通りに進めてみるという方は多いと思います。
しかし、
「書いてある通りにやってるのに、なんかうまくいかないんだけど…」
という声をよく耳にします。
どうゆうことなのか?
予想される原因について簡単に解説していきたいと思います。
ちなみに以下のサービスでも相談を受け付けております。
気軽にお問合せください。
1.うまくいかない原因は様々 自分が悪い場合もあれば記事が悪い場合もある
Python初心者であるかどうかにかかわらず、技術系の記事を探して興味あるものは試してみるというはみんなやっていることです(もちろん私もやってます)。
とてもありがたいことに非常に多くの方が様々な理由で自分の経験したことや学んだことを記事にしてネット上に無料で公開してくれています。
というわけで、まずはそういった方々に感謝しましょう!
「知りたかった情報を公開してくれてありがとうございます!」
しかし、この後、その記事から目的を達成できる人とできない人に分かれていきます。
・・・どうゆうことなのか?
大きく分けると以下の2つに分かれるのかなと思います。
- 自分に問題がある場合
- 参考にしている記事に問題がある場合
それぞれはさらに細かく分けることができるので、次にそれらについてみていきましょう。
2.自分に問題がある場合
2.1. 単純に記事を読み解くレベルに達していない
原因は様々なので一概にレベルが達していないとは言い切れませんが、一つ言えることは、
記事ごとに読者の想定レベルが存在する
ということは言えると思います。
Pythonの基礎を全く知らない人がPython関連の技術記事を読んでも全くわからないですよね?
Pythonの技術記事は最低でもPythonの基礎はある程度理解していることを前提として書かれているわけです。
かといって、「この記事を読むために必要なレベルはこのくらいです」と丁寧に書かれているものは多くはありません。
想定読者について記載してくれているものはそこそこ見受けられますが、レベル感まで記載されているものは稀です。
まずは参考にしたい記事を読むのに必要な知識をある程度習得・理解しなければいけません。
正直面倒です…
ですが、面倒でもやり切れる人はその後も同じような壁にぶつかっても一人で乗り越えていけると思います。
しかし、社会人ともなると忙しくてなかなか時間も取れずに放置…という人も多いでしょう。
できるだけ短い期間で何とかしたいという場合には、やはり他の人に頼るということは有効な手段と言えます。
2.2. 執筆者と自分のPCやPython周りの環境の違いを確認
Python初心者だと環境構築についてあまり重要視していないというか、よく理解できていない人が多いです。
しかし、これを疎かにしてしてしまうと技術記事を読んでもうまくいかない場合が結構あります。
通常、Pythonを利用する際は目的(プロジェクト単位など)ごとに仮想環境を構築し、その仮想環境の中でプログラムを実行します。
技術系の記事にそういったことが書かれていることはほとんどないですが、基本的には専用の仮想環境を作って、その中で実行しているということを前提に書かれています。
ここでは詳しくは説明しませんが、Pythonで1つのパッケージをインストールしようとすると関連する他のパッケージも自動でインストールされます。
これはお互いのパッケージが依存しあうことで自分の目的とするパッケージが正常に動作するようになっています。
一つでも欠けると動きません。
しかも、バージョンによる依存関係もあるため非常に複雑です。
そのため、1つの仮想環境だけで複数のプロジェクトのプログラムを実行しようとするとエラーが頻発することになります。
以前は動いたのにあるパッケージのバージョン違いをインストールしたら動かなくなった…とかはまさにこれが原因の可能性が高いです。
実行環境の整備はプログラムを正常に動かすために最も重要なファクターです。
Pythonを利用するためには仮想環境について最低限の理解が必要となるでしょう。
Anacondaであれば仮想環境の管理は比較的簡単ですので、基本的な使い方をマスターしておきましょう。
2.3. Python以外の知識が足りていない
さて、Python関連の技術記事にはPython以外の知識が必要なことも多々あります。
例えば、
- CMakeでのmakeファイルの作成に関すること
- Visual Studioのインストール関連
- 環境変数の設定について
- バッチファイルの編集や操作について など
他にもいろいろありますが、記事によって必要な知識は大きく変わってきます。
最近私が関わったものだとffmpegなんかもそうですね。
pipを使ってffmpeg-pythonをインストールしただけでは使うことはできません。
別途ffmpegを公式サイトからダウンロードして、Windowsであれば環境変数の設定をして初めて使うことができます。
このあたりはPythonとは直接関係がありませんが、参考にする記事に合わせて随時対応しなければなりません。
つまり
Pythonだけ分かっていてもダメ
ということになります。
PCに強い人であれば難なく解決できますが、そうでなければ難しく感じてしまうかもしれませんね。
3.参考にしている記事に問題がある場合
3.1. 記事の古さを確認する
次に記事側の問題についてみていきましょう。
まずは記事の古さを確認してみてください。
記事の古さは、使用するPythonやパッケージの「バージョン」の違いに直結します。
ちゃんとした記事であればPythonのバージョンはいくつで、他に必要なものはこれです、と記載があるのでそれに従いましょう。
記載がない場合は手探りとなります(しんどい… -_-;)。
前述の「2.2. 執筆者と自分のPCやPython周りの環境の違いを確認する」でも述べましたが、バージョンの違いはエラーが発生する代表的な要因の一つです。
例えば、記事公開時のGoogle Colabでは問題ないけど、それから数年たった今のGoogle Colabでは動かない、というのはよくある話です。
以前作ったPythonプログラムを久しぶりに動かそうとしたら動かなかったというのもそうですね。
バージョンによって廃止されてしまったり引数が変更になったりするメソッドもあります。
同じパッケージだからと言って今も昔も同じように使えるというのは幻想だと思ってください。
初心者にとっては対応するのが大変な部分であることは間違いないと思います。
3.2. 書いてあることが必ずしも正しいとは限らない
ほぼ全ての執筆者は記事内容について間違いがないかどうか細心の注意を払っていると思いますが、やはり人間なのでミスは起こります。
しかも複雑な内容を扱うこともあるので、本来書いておかないといけないことを忘れてしまっていた…なんてこともあります。
ですが、そんなことは初心者には一切わかりません。
ある程度知識があれば、「あれ?おかしいぞ?」と気付くかもしれませんが、知識がない人が気付くのはほぼ不可能です。
エラーの内容をしっかり読める人であれば本来記載されなければならない部分について気付けるかもしれません。
一番の難問は「エラーが表示されないこともある」ということです。
「エラーは表示されないけどどうも正常に動作していないっぽいなぁ…」
という時の対処は玄人でも骨が折れる作業です。
記事の正確性については他の記事との整合性を確認すると良いかもしれませんね。
まとめ
結局のところ初学者が一人で解決するには難しい…かもしれないという感じです(経験がものをいう… -_-;)。
近くに相談できる人がいればいいですが、そうでない場合はすぐに相談できる窓口を見つけておくと安心ですね。
もし上記のような内容でうまくいかないことがあればご相談ください。
(簡単なものであれば10,000円くらいから対応させていただいております)
(もちろん他の内容についても扱っています)