プログラミング初心者が環境構築で考えるべき問題点！

# はじめに
皆さん、初めまして
「らんどむ」と申します。
今回は私がPythonの環境構築で悩んだ話をしたいと思います。
具体的には、初心者がPCで環境構築する際に考えるべき問題点について話します。


本記事の内容はPythonを例に挙げていますが、どのプログラミン言語でも初心者が後に苦悩する話でもあると思うので、共感したらぜひ拡散していただければ嬉しいです。

時間が無い人は結論だけでも是非読んでいってください。

#注意：
本記事では環境構築(仮想環境含め)の具体的な方法の解説は行っていません。
あくまで筆者が個人的に思っていることを紹介しています。

# Pythonの環境構築方法の種類
まず、環境構築についてPythonを例に解説させてください。
Pythonを使ってプログラミングを行うのには大きく分けて３種類の方法があります。
1. Python.orgからPythonを直接PCにインストールする方法
  この方法がおそらく最も一般的な方法で、Pythonの環境構築の定番として様々なブログやYoutubeで初心者向けに紹介されていると思います。
  個人的にはこの章で紹介している方法の中ではあまりお勧めしない方法です。(下２つがかなり便利なため)
1. Anacondaを直接PCにインストールする方法
  この方法はアカデミックなプログラミングをしたい人向けの方法で、データサイエンスや機械学習に関するツールがPythonとセットでインストールできます。この方法は１つ目の方法と比べてネットではあまり紹介されていないイメージがありますが、様々なツールが簡単に使えてかなり便利です。また、個人的には仮想環境(後述)の管理で右に出るツールは無いと思っています。
  Google Colaboratoryの次におすすめしている方法です。
3. Google ColaboratoryでPythonをクラウド上で使う方法
  この方法も２つ目の方法と同じようにアカデミックなプログラミングをしたい人向けの方法で、データサイエンスや機械学習に関するツールが扱えます。また、この方法は上記の２つの方法とは違って、PCにPythonをインストールせずにクラウド上でプログラミングを行うため、Googleアカウントとネット環境さえあれば誰でも簡単にプログラミングできます。
  個人的に一番おすすめしている方法です。(理由は後述)

以上の３種類がPythonでプログラミングする基本的な方法で、多くのブログやYoutubeで解説されています。３つ目のGoogle Colaboratoryを用いた方法はPCに開発環境を作る必要がない方法であるため、いわゆる「環境構築不要」と呼ばれている方法になります。
C言語やRubyといった他のプログラミング言語でも、Pythonと同じようにプログラミングを行う方法はいくつもあるはずです。


# 悩んだ問題
さて、私が環境構築で悩んだ問題ですが、
それは...

**プロジェクトごとに仮想環境作って整理しないとプログラミングどころではない！**

ということです。

仮想環境について知らない方に説明すると、「開発に必要なツールを整理してまとめることができる仮の環境」と考えてください。プロジェクトごとに仮想環境を作ることで余計なツールや処理を気にせずに作業できる利点があります。(雑に説明しているので詳しくは自身で調べてみてください)

有志のライブラリを使うプログラミング全般に言えることですが、Pythonでは複数のライブラリの名前が同じ場合(ライブラリの衝突)と、参照するライブラリのバージョンが異なる場合(バージョンの衝突)が問題点として考えられます。そのため、ライブラリの管理はプログラミングでは欠かせません。

この記事を読んでいるほとんどの方がプログラミング初心者であると思うのですが、半分くらいの人はプログラミングの基礎を身に着けたらアプリケーション開発に移行すると思います。そのためには、アプリケーション開発をサポートするフレームワークと呼ばれる枠組みも含めた開発環境を用意することになります。

webアプリ開発を例にするとJavaScriptのReactやPythonのDjango、RubyのRuby on Railsといったwebアプリ開発に必要なフレームワークも含めた環境を構築することになります。

このときに問題になるのが、ライブラリやバージョンの衝突です。

PCに直接開発環境を作っていると、今までインストールされたライブラリやフレームワークが互いに影響し合い、プログラミングに支障をきたす可能性がありますし、なにより管理が面倒です。

そのため、アプリケーション開発の際は仮想環境を用意し、ライブラリやバージョンの衝突が起こらない環境で開発を行うのが一般的で安全です。



# 解決方法
解決方法はいたってシンプルです。

**仮想環境でプログラミングをする** 
　　　　　　 or 
**そもそもPC上に環境を作らない**

以上です。

Pythonだと先ほど説明したGoogle Colaboratoryが良い例でしょう。

個人的に一番おすすめしている理由としては解決方法の後者である「そもそもPC上に環境を作らない」を完璧にクリアしているからです。クラウド上でプログラミングができることはPC内の環境を乱雑にしない点でかなり貴重です。

ただ単にプログラミング言語を学ぶだけならクラウドサービスでのプログラミングで十分だと私は考えています。理由はシンプルで、インストールとかアンインストールが面倒かつ、PC内の環境が荒れるからです。

ですが、読者の半分にはGoogle Colaboratoryはおすすめできないツールとなります。
なぜなら、Google Colaboratoryはアプリケーション開発用の環境ではなく、アプリケーション開発ができないためです。

つまり、Pythonのアプリケーション開発では「**そもそもPC上に環境を作らない**」という選択肢は無く、「**仮想環境でプログラミングをする** 」という選択肢しか残っていません。

ですが安心してください。

Pythonには前述したPython.orgとAnacondaのどちらの方法にも仮想環境が作れるライブラリが標準でついていますし、ライブラリやバージョンの管理も簡単です。

**Python初心者はライブラリやバージョンで悩むことはほとんどないでしょう！**


ここで読者の皆さんは「他の言語も標準で仮想環境作れるの?」とお思いでしょう。

しかし、残念ながらすべてのプログラミング言語が標準で仮想環境を作れるわけではありません。

例えばC言語やJavaのような一部の言語はPythonのような仮想環境という概念は無いようで話は少し違う方向に進みます。ですが、PC内の環境を乱雑にしない方がいいことには変わりありませんし、その対策は次の章で紹介します。


# おすすめの仮想環境(開発環境)の作り方
私が直面した問題とその解決方法が分かったところで、このように考えた読者が多いと思います。
- 「自分が学習しているプログラミング言語の仮想環境の作り方が分からない！」
- 「Pythonの仮想環境の作り方が多すぎて分からない！」

仮想環境の具体的な作り方に関しては、ネットを調べればいくらでも出てくると思うので、そちらを参考にしてください。また、どのような仮想環境が必要かはプロジェクトごとに変わってくるので、ネットで調べたりAIに聞いたりしてみてください。

そのかわり、本章ではどのようなプロジェクトやプログラミング言語でも対応できるかもしれないおすすめの仮想環境の作り方と、Pythonのおすすめの開発環境の作り方を概要だけ紹介します。

#### 1. どのようなプロジェクトやプログラミング言語でもおすすめの仮想環境
おすすめの仮想環境の作り方としては、**Docker**という仮想環境を簡単に作れるソフトで仮想環境を作成することです。
詳しい説明は省きますが、簡単に説明するとDockerはOSの仮想環境からプログラミング言語の仮想環境まで様々な仮想環境の作成と管理が行えるソフトウェアです。

今までに紹介したPythonの仮想環境はもちろん
PHPやWordPressといったサーバー向けの言語の仮想環境
javaやRubyといったメジャーなプログラミング言語
DebianやUbuntuといったOSの仮想環境
他にも様々な仮想環境が作れます。

Dockerさえあれば、理論上はLinux系OSで動かせるほぼすべてのプログラミング言語の仮想環境が作れます。

以上のことから、どのようなプロジェクトやプログラミング言語の場合でも、Dockerは仮想環境を作れる可能性が高いため、Dockerを用いたプログラミングをおすすめしています。ちなみに、一部GUI操作が可能なDesktop版もあるのでCLI操作が苦手な人はDocker Desktopをおすすめしてます。

一応、デメリットとしてはDockerに関する知識とCLI操作が必要なので、その学習が少し面倒なことが挙げられます。

#### 2. Pythonのおすすめの開発環境
おすすめの開発環境はAnacondaです。

AnacondaはAnaconda NavigatorからGUIとCLIの両方の操作からライブラリの管理と仮想環境の管理が可能です。
さらに、AnacondaはVScodeやSpyderといったエディターが利用可能で、Pythonでの開発はAnacondaをインストールするだけで環境構築がほぼ終わります。

また、Python.orgからPythonをインストールした場合、ライブラリと仮想環境の管理はCLI一択かつ、必須ではないもののほとんどの場合はエディターは別でインストールしなければなりません。

以上のことから、Python初心者に優しいのでPythonのおすすめの開発環境としてAnacondaをおすすめしています。

一応、デメリットとしてはAnacondaは一定条件の商用利用には有償ライセンスが必要であることが挙げられます。（2025年3月9日時点）


# 「パスってなに？」な人&これからインストールorアンインストールするかもしれない人向けの話
**「パスってなに？」な人向けの話**
Pythonをpython.orgからインストールする際、特に問題が無ければ「Add Python to PATH」的なチェックボックス等が出てきてチェックを入れるか聞かれます。

このチェックボックスにチェックを入れてインストールすると、PC内の実行ファイルのリストにPythonの実行ファイルが保存され、PCで`.py`を実行する際にPythonの実行ファイルをデフォルトで実行されるようになります。

正確には違う動きをするが、何となく知りたい人は上記のイメージを持っておくといいです。
プログラミング言語以外も何かしらのソフトウェアで「PATH」に関して聞かれる可能性があるため、より詳しい正確な内容は自身で調べてください。

**これからインストールorアンインストールするかもしれない人向けの話**
プログラミング学習に飽きたりして、プログラミング言語をPCから削除したくなる人はかなり多くいると思います。

しかし、ここで注意してほしいことがあります。

体感かつプログラミング言語に限った話ではないのですが、**だいたいのアプリケーションは完全にアンインストールしたように見せかけて実は何かしらのファイルや設定がPC内に残ることが多いです。**

例えばPythonの場合はライブラリ関係のファイルやPythonのパスの設定が消去されずにPC内に残ることがあったりします。(可能性の話です)

そのため、ネットでそのアプリケーションのデータと設定を完全に削除できる方法をよく調べてからインストールやアンインストールするのがおすすめです。



# まとめ&結論
まとめ：
1. PCに直接開発環境を作成するとライブラリやバージョンの衝突が起こるかもしれない
1. 1を回避するためには仮想環境を使うorそもそもPC上に環境を作らない
1. アプリケーション開発の場合は仮想環境を使うしかない
1. DockerとAnacondaがおすすめ
1. アプリケーション等をアンインストールする際は残留ファイル等に気を付けよう

**結論：プログラミングを始める前に、以下の点を確認しよう！**
1. PC内で環境を作る必要性はあるのか
1. Dockerなどで仮想環境が作れるのか
1. プログラミング言語自体に仮想環境を作る機能はあるのか
1. PC内の環境が汚れても気にしないのか
1. 完全なアンインストールが可能か


### 最後に
誤字脱字や誤り、改善点等があったらコメント欄にお願いします。
そのほかのコメントもお待ちしてまーす。