先日、電子書籍「Python Django ~初めてのアプリ作成にチャレンジ~♪その1「入門編」♪」を購入しました。以下は、読みながら実践してみた時の作業記録(備忘録)です。
最初に言ってしまうと、この書籍では、パッケージ管理システム(Anacondaやvenvなど)は使用しておらず、いわゆるグローバル環境にPythonをインストール、設定していく流れになっています。
とても分かり易いのですが、でも、これだと、他の書籍を同様に実践しようとする時に、開発環境を作り直すか、作成した環境を初期化する必要が、発生するんですよね。
なので、以下の手順では、書籍に沿って一旦環境を作成するまでは、行ったのですが、「仮想環境」を作成して「環境を切り替える」方法があることを知り(上記に気づき)、途中で環境を初期化しています。
今回の記事は、備忘録(1/2)として、上記の方法(Anacondaを最初にインストールする方法)で、実施した体験記(備忘録)を、別記事にしてあります。
以下は、その前の段階の記事になります。
1.環境作成
(1)Python のインストール
(参考)Windows版Pythonのインストール: Python環境構築ガイド – python.jp
① Pythonのインストーラをダウンロード
(ダウンロードサイト)非公式Pythonダウンロードリンク – Python downloads
② Pythonのインストーラを実行
(ⅰ)「Add python.exe to PATH」にチェックして、「Install Now」を選択します。
(ⅱ)以下の画面が表示されたら、通常「Close」を選択して完了です。
[参考] 上記の「Disable path length limit」の意味は次の通りです。☆Disable path length limit
Changes your machine configuration to allow programs, including Python, to bypass the 260 character “MAX_PATH” limitation.
(意味)パス長制限を無効にするマシン構成を変更して、Python を含むプログラムが 260 文字の「MAX_PATH」制限を回避できるようにします。
※つまり、今後もしPythonで、すごく長いファイル名を付けたい方は、ここをクリックしておけば、制限が解除される、というものだそうです。
(ⅲ)(上記で、もし、パス長制限解除を選択した場合も)ここで、「Close」を選択して完了です。
(2) Pythonのインストール完了の確認
①コマンドプロンプトを実行し、
py
と入力し、エンターキーを押下します。
②以下のように、Pythonのバージョンが表示され、プロンプト「 >>> 」が表示されれば完了です。
(3)(OS上で、今後、作成したPythonプログラムが実行に対して)許可付与
① PowerShellを起動し、
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
と入力し、エンターキーを押下します。
これは、ローカルのスクリプトを実行できますが、安全な署名されたスクリプトのみを実行するように保護するためのコマンドです。
このPowerShellでスクリプトの実行を許可しない場合、PowerShellはデフォルトでスクリプトの実行を制限しています。そのため、スクリプトを実行しようとすると、以下のようなエラーメッセージが表示されます。
(エラーメッセージ)
.\script.ps1 cannot be loaded because running scripts is disabled on this system.
このエラーメッセージは、PowerShellが「実行ポリシー」によって、スクリプトの実行を禁止していることを示しています。したがって、スクリプトを実行するためには、実行ポリシーを変更する必要があります。
Set-ExecutionPolicyコマンドレットを使用して、実行ポリシーを変更できます。”RemoteSigned”は、ローカルのスクリプトは無制限に実行されるが、リモートからダウンロードされたスクリプトは署名されている必要がある、という意味です。したがって、Set-ExecutionPolicy RemoteSignedコマンドを使用すると、ローカルのスクリプトを実行できますが、安全な署名されたスクリプトのみを実行するように保護されます。
実行ポリシーを変更せずにスクリプトを実行することはできますが、セキュリティ上のリスクがあるため、セキュリティ上の理由から実行ポリシーを変更することをお勧めします。ただし、システム管理者から指示を受けた場合は、その指示に従うことをお勧めします。
2.Pythonの実行により対話処理が可能になりますが、ここでは割愛します。
3.Pythonライブラリのインストール
Django、Django-boost、wikipediaをインストールします。
3-1. Djangoについて
Djangoは、Pythonで開発されたWebアプリケーションフレームワークの1つです。Djangoを使用することで、Webアプリケーションの開発を迅速に行うことができます。
Djangoは、MVC(Model-View-Controller)の設計パターンを採用していますが、実際にはMVT(Model-View-Template)と呼ばれるパターンを採用しています。MVTでは、モデル、ビュー、テンプレートと呼ばれる3つの要素に分かれています。
- モデル:データベースのテーブルに相当するもので、アプリケーションで扱うデータを定義します。
- ビュー:アプリケーションのロジックを定義する部分で、ユーザーの入力を処理して、モデルからデータを取得してテンプレートに渡します。
- テンプレート:HTMLファイルに相当するもので、ユーザーに表示するページのデザインを定義します。
Djangoには多くの便利な機能があり、以下のような特徴があります。
- ユーザー認証や管理機能などの標準機能が豊富に用意されている。
- ORM(Object-Relational Mapping)をサポートしており、SQLを書く必要がなく、Pythonコードでデータベースを操作できる。
- テンプレートエンジンをサポートしており、デザインとロジックを分離して開発することができる。
- 高速で、堅牢なWebアプリケーションを簡単に構築できる。
Djangoは、多くの企業や開発者によって利用されており、Webアプリケーションの開発において、高い生産性と堅牢性を提供しています。
(1)Django のインストール
① コマンドプロンプトを起動し、以下のコマンドを入力・実行します。
② 以下の様に、「Successfully installed …」と表示されれば完了です。
3-2. Django-boost について
”Django-boost”は、Djangoアプリケーションの開発を支援するためのオープンソースのパッケージです。Django-boostには、以下のような便利な機能が含まれています。
- Djangoプロジェクトの初期セットアップを自動化する機能 Django-boostを使用すると、Djangoプロジェクトの初期セットアップを自動化できます。例えば、必要なパッケージをインストールしたり、設定ファイルを作成したりすることができます。
- モデルの自動生成機能 Django-boostは、既存のデータベースからモデルを自動生成する機能を提供します。これにより、手作業でモデルを作成する手間を省くことができます。
- テンプレートの自動生成機能 Django-boostは、基本的なHTML/CSSのテンプレートを自動生成する機能を提供します。これにより、デザインに必要な基本的なHTML/CSSのコードを手作業で作成する必要がなくなります。
- コマンドラインツールの提供 Django-boostには、Djangoアプリケーションの開発に便利なコマンドラインツールが含まれています。例えば、Djangoアプリケーションのスケルトンを作成することができます。
Django-boostは、Djangoの生産性を向上させるための便利なパッケージであり、特に小規模なプロジェクトにおいて、開発時間の短縮や開発者の負荷軽減に役立ちます。
(1)Django-boost のインストール
① コマンドプロンプトを起動し、以下のコマンドを入力・実行します。
② 以下の様に、「Successfully installed …」と表示されれば完了です。
3-3. wikipedia について
Pythonライブラリのwikipediaは、Wikipediaの記事をPythonコードから容易にアクセスすることを可能にするパッケージです。このライブラリは、WikipediaのAPIを使って、Wikipediaの記事に関する情報を検索、抽出、解析することができます。
wikipediaライブラリには、Wikipediaの記事の概要、サブタイトル、ページ内のリンク、画像、カテゴリ、言語、参考文献など、さまざまな情報を取得するためのメソッドが含まれています。また、Wikipediaの記事を自動的に検索し、関連する記事をリストアップする機能も備えています。
wikipediaライブラリは、PythonプロジェクトでWikipediaの記事にアクセスする必要がある場合に非常に便利で、情報検索や分析、自然言語処理などのプロジェクトでよく使われます。また、Wikipediaのデータを解析して、機械学習モデルをトレーニングすることもできます。
(1)wikipedia のインストール
① コマンドプロンプトを起動し、以下のコマンドを入力・実行します。
② 以下の様に、「Successfully installed …」と表示されれば完了です。
4. 上記環境のアンインストール
ここまで実施した後で、「仮想環境」の利用に気づきました。
上記環境を、Windows10のグローバル環境に、直接、作成すると、別バージョンの開発環境を作成する際に、競合してしまったり、環境変数が分かりにくくなったりしてしまう、とのことです。
そこで、一旦、上記の環境を、全て、アンインストールすることにしました。
以下は、その記録になります。
4-1. Pythonのライブラリのアンインストール
(1)Pythonのライブラリ「wikipedia」のアンインストール
① pip uninstall wikipedia の実行
② アンインストールするライブラリ(各ファイル)が表示されるので、「Y」と入力、押下します。
③ 以下の様に「Successfully uninstalled wikipedia・・・」と表示されれば完了です。
(2)Pythonのライブラリ「django-boost」のアンインストール
① pip uninstall django-boost の実行
※上記と同様に、途中、「Y」と入力、押下します。
※以下の様に、「Successfully uninstalled django-boost・・・」と表示されれば完了です。
(3)Pythonのライブラリ「Django」のアンインストール
① pip uninstall django の実行
※上記と同様に、途中、「Y」と入力、押下します。
※以下の様に、「Successfully uninstalled Django・・・」と表示されれば完了です。
4-2. Python (本体) のアンインストール
こちらは、Windows10に、インストーラを使用してインストールしたので、Windows10の標準機能でアンインストールします。
(1)Windows10の「スタート」→「設定」→「アプリ」と選択後、表示される「アプリと機能」画面で、「Python」と入力・検索し、そのいずれも、順に、アンインストールします。
① 「Python」アプリを入力・検索する。
② Python Launcher (付属アプリ) をアンインストールする。
③ Python (本体) をアンインストールする。
↓
④ 環境変数の確認
通常、上記までの手順で、アンインストールは完了なのですが、環境変数については、初期化されない場合も、(過去のWindows用のインストーラ・アンインストーラでは)あったので、ここでは、一応、以下の様に(環境変数が初期化(つまり、Python関連の環境変数が消されていること)を)確認してみます。
(ⅰ)コマンドプロンプトで、
path
と入力、実行します。
(ⅱ)上記の様に、Python関連の環境変数が、表示されていなければ、確認も完了です。
5.仮想環境について
最後に、仮想環境について、確認してみます。
Pythonに限りませんが、プログラム開発を行う際には、複数のプロジェクトを同時に管理する場合、それぞれのプロジェクトで使用するPythonパッケージが異なることがあります。このような場合、Pythonの仮想環境を作成して、各プロジェクトごとに必要なパッケージをインストールすることが推奨されます。
仮想環境とは、Pythonのパッケージやライブラリをインストールする際に、Pythonのグローバル環境とは別に、ローカルに環境を作成することです。仮想環境を使うことで、複数のプロジェクト間で異なるパッケージバージョンを使うことができます。
Pythonの仮想環境を作成するには、仮想環境を管理するためのツールをインストールする必要があります。Python3.3以降では、標準のvenvモジュールを使用して仮想環境を作成することができます。以下は、venvを使用して仮想環境を作成する例です。
# 仮想環境を作成する
python3 -m venv myenv
# 仮想環境をアクティブにする
source myenv/bin/activate
仮想環境をアクティブにすると、ターミナルのプロンプトの先頭に、仮想環境名が表示されます。また、仮想環境をアクティブにした状態で、pipコマンドを実行すると、仮想環境にパッケージをインストールすることができます。仮想環境をアクティブにした状態で、pipコマンドを実行すると、パッケージは仮想環境にのみインストールされます。
# 仮想環境にパッケージをインストールする
pip install requests
仮想環境を切り替える場合は、別の仮想環境をアクティブにするだけです。また、仮想環境を削除する場合は、仮想環境のディレクトリを削除することができます。
Pythonの仮想環境を使用することで、プロジェクト間で環境を切り替えることが容易になり、パッケージのバージョンの競合や依存関係の問題を回避できます。また、仮想環境を使用することで、Pythonのパッケージをシステム全体にインストールすることなく、必要なプロジェクトにのみインストールすることができます。これにより、システムの環境が乱れることを防ぎ、プロジェクトのセキュリティを高めることができます。
仮想環境を作成するために、venvモジュール以外にも仮想環境を管理するためのツールがいくつか存在します。例えば、Anacondaやvirtualenvなどがあります。これらのツールは、venvモジュールよりも柔軟性があり、様々な設定や機能を提供しています。しかし、基本的な仮想環境の機能を使うだけであれば、venvモジュールを使用することが推奨されます。
仮想環境を使用することは、Python開発において非常に重要な概念です。プロジェクトを始める前に、必ず仮想環境を作成して、必要なパッケージをインストールするようにしましょう。仮想環境を適切に管理することで、Pythonの開発をより効率的かつ安全に行うことができるようです。
6.最後に
上記を考慮してみると、 Windows10に、Pythonをインストールするのは、 グローバル環境に、直接、インストールするのはやめておいて、 仮想環境を作成してから、その仮想環境にインストールする方が、絶対に良いと思いました。
Windows 10にPythonを直接インストールする場合、グローバル環境にPythonがインストールされます。これにより、異なるプロジェクト間で競合や依存関係の問題が発生する可能性があります。
仮想環境を使用することで、プロジェクトごとにPythonのバージョンやパッケージを独立して管理することができます。また、仮想環境の作成や切り替えも簡単に行うことができます。これにより、システムの環境を汚染することを防ぎ、Pythonプロジェクトの開発をより安全かつ効率的に行うことができます。
Windows 10にPythonをインストールする場合は、まずは仮想環境を作成してから、その仮想環境に必要なパッケージをインストールすることをおすすめします。仮想環境の作成にはvenvモジュールを使用することができます。また、他の仮想環境管理ツールを使用することもできます。
7.[おまけ] 仮想環境ツール( venv、Anaconda、virtualenv )の比較
(1)venv
- 特徴:Python3.3以降に標準で付属する、Pythonの標準ライブラリに含まれる仮想環境作成ツール
- 人気度:Pythonの標準機能であるため、多くの開発者に利用されている
- メリット:Pythonの標準機能であるため、インストールが不要であり、Pythonのバージョンアップによっても影響を受けない。また、venvは仮想環境の作成に必要な機能のみを提供するため、軽量であり、インストールが容易である。
- デメリット:venvは仮想環境の作成に必要な機能のみを提供するため、機能が限られている。また、Windows環境での仮想環境の作成が若干面倒である。
- 仮想環境の保存ディレクトリ:プロジェクトのディレクトリ内に、”venv”という名前で作成される。
- Pythonのバージョンごとに別々の仮想環境を作成する必要がある。また、venvには、独自のオプションがないため、機能が制限されている。
- 仮想環境の保存ディレクトリ:通常、プロジェクトのルートディレクトリ内に保存される。
(2)Anaconda
- 特徴:Pythonに加えて、科学技術計算に必要なライブラリやツールをまとめたPythonディストリビューション。仮想環境の作成やライブラリのインストールが容易である。
- 人気度:科学技術計算に特化したPythonディストリビューションであるため、特にデータサイエンス分野で利用されている。
- メリット:科学技術計算に必要なライブラリが事前にインストールされており、仮想環境の作成やライブラリのインストールが簡単である。また、Anaconda NavigatorというGUIツールで、仮想環境の作成や管理ができるため、初心者にも扱いやすい。
- デメリット:Pythonに加えて、科学技術計算に必要なライブラリやツールをまとめたディストリビューションであるため、必要ない機能も一緒にインストールされることがある。また、デフォルトでパスが通っているため、環境変数の設定が必要になることがある。
(3)virtualenv
- 特徴:venvと異なり、Pythonの標準モジュールではないため、別途インストールが必要である。
- 人気度:Pythonの仮想環境ツールの中では、最も古くからあり、最も広く利用されている。
- メリット:venvにはない独自のオプションがあり、より高度な機能を利用することができる。また、Pythonのバージョンをまたいで仮想環境を作成することができるため、柔軟性が高い。
- デメリット:仮想環境の切り替えが煩雑になることがある。また、Pythonのバージョンごとに別々の仮想環境を作成する必要がある。
- 仮想環境の保存ディレクトリ:通常、プロジェクトのルートディレクトリ外に保存される。