Python
Python とは、数あるプログラミング言語の1つです。機械学習や業務効率化など、最近いろいろなところで使われています。NKSSG は、この Python で書かれています。
ここでは、NKSSG を使う上で知っておくと役立つ Python に関する内容をまとめていきます。
Pythonのインストール
NKSSG を使うためには、Python が必要です。Python 3.6 以上が必要です。
Python がインストールされているか、インストールされているバージョンが何かは、次のコマンドで確かめられます。
python --version
何かエラーが出れば、インストールされていないということなので、以下のサイトを参考にインストールしましょう。
最新のバージョンをインストールしておけば問題ないでしょう。
Pythonの仮想環境
NKSSG では、venv を使って仮想環境を作ることを推奨しています。この「仮想環境」について、説明します。
仮想環境とは
Python では、外部のパッケージをインストールする機能があります。これにより、自分で一からコードを書かなくても、便利な機能を使うことができます。
しかし、このパッケージは、互いに干渉することもあります。
例えば、すでにパッケージA をインストールしたところに、パッケージB もインストールしたくなったとしましょう。どちらのパッケージも、別のパッケージC が必要だとします。
このとき、もし、パッケージA には最新のパッケージC が必要である一方、パッケージB はまだ最新版に対応しておらず、古いバージョンのパッケージC を使う必要があったとしたら、どうでしょうか。
- A: 最新バージョンの C が必要
- B: 古いバージョンの C が必要
これでは、どんなバージョンのパッケージC を使っても、問題が起きてしまいます。 A と B を同時に使用しない場合であっても、です。
こういう場合に、別々の環境が作れれば便利ですね。「最新の C がある環境」と「古い C がある環境」が作れれば、パッケージA、パッケージB をそれぞれインストールして使うことができます。
このように、独立した環境が作れれば、パッケージの依存性や互換性の問題を解決できます。仮想環境は、この「独立した環境」を作る機能です。
Pythonの仮想環境の種類
実は、「仮想環境」といっても、Python にはいろんな種類の仮想環境があります。
venv は、ある1つの Python のバージョンのもとで、パッケージの環境を分けるために使います。公式にサポートされた機能で、Python をインストールすればすぐに使えます。
次のようなコマンドで仮想環境を作ることができます。
python -m venv .venv
最後の .venv が仮想環境の名前です。これを実行すると、.venvフォルダができて、必要なファイルが作成されます。
仮想環境の名前は、.venv以外にも好きなものにすることができます。
注意
.venv のフォルダまでのパスのどこかに、日本語が含まれていると使えないので注意しましょう。これは NKSSG の制約ではなく、venv の制約です。
こうして作られた仮想環境には、作成に用いた Python のバージョンが引き継がれます。例えば、Python 3.9 で作成した仮想環境では、Python 3.9 の環境の下で、いろいろなパッケージをインストールできる、ということです。
NKSSG では、仮想環境といえば、このvenvで作られたものを指していますが、一般には以下のようなものを指す場合もあります。
1つ目は、Python のバージョンまで分ける仮想環境です。例えば、pyenv などを使います。
これにより、Python 3.8 を使う環境と Python 3.9 を使う環境、という構成ができるようになります。パッケージによっては、動かすのに必要な Python のバージョンが異なる可能性があります。そういう場合には、バージョンを分けて仮想環境を作る必要があります。
2つ目は、OS の環境まで分ける仮想環境です。Docker や Vagrant などを使います。
自分の PC 内に別の OS の環境を作るので、Python の環境だけでなく、データベースやウェブサーバーまで含めた環境を独立して作ることができます。
NKSSG では、venv で作成した仮想環境があれば十分です。もちろん、これらのさらに大きな仮想環境を作っても構いません。
仮想環境の使い方
仮想環境を作るだけでは意味がありません。使うときには、起動する必要があります。仮想環境が使えるように起動することを、「アクティベートする」といいます。
venvで作成した仮想環境をアクティベートする方法は、環境によって異なります。例えば、Windows の PowerShell を使っている場合は、次のコマンドを実行します。
.venv\Scripts\activate.ps1
.venvの部分には、先ほど作成した仮想環境の名前を入れます。
ただ、毎回このコマンドを入力してアクティベートするのは面倒ですね。VSCode なら、VSCode を立ち上げたときに仮想環境も同時にアクティベートする、という設定をすることができます。
他の環境なら、次のようにコマンドを変えます。
【コマンドプロンプトの場合】
.venv\Scripts\activate.bat
【Unix や Mac の場合】
source .venv/bin/activate
仮想環境を有効化しないと、せっかく仮想環境を作ったのに、おおもとの Python の環境にいろいろインストールしてしまうことになるので注意しましょう。
アクティベートすると、パスの前に仮想環境の名前が出るようになります。例えば PowerShell なら、次のようになります。
(.venv) PS C:...
これで、アクティベートされているかどうかがわかります。
終了する場合は、次のコマンドを実行します。
deactivate
こうすると、おおもとの Python を使う環境に切り替わります。
パッケージのインストール
Python のパッケージとは、Python で使えるいろんな便利機能をまとめたものです。インストールして使えるようになります。
パッケージのインストールを行う一番オーソドックスな方法は、pip を使う方法です。
仮想環境をアクティベートした状態で、まずは次のコマンドを実行してみます。
pip list
これで、今の環境にインストールされているパッケージの一覧が表示されます。仮想環境を作成したばかりなら、ほとんど何も入っていないはずです。
ここに NKSSG をインストールすれば、NKSSG が使えるようになります。
pip install -U git+https://github.com/nakaken88/NKSSG
これにより、GitHub 上にあるプログラムがインストールされます。
もう一度、pip listを実行してみると、NKSSG 以外にもいくつかのパッケージが同時にインストールされます。これらは、NKSSG で使う別のパッケージです。
一緒にインストールされる主なパッケージは、次の通りです。ここに指定しています。
- beautifulsoup4
- HTML の解析に使う
- click
- コマンドの処理で使う
- Jinja2
- テーマの処理で使う
- livereload
- ローカルサーバーの処理で使う
- Markdown
- Markdownファイルの処理で使う
- ruamel.yaml
- YAML記法の処理で使う
- tornado
- ローカルサーバーの処理で使う
他にも、これらのパッケージで、別のパッケージを使う必要があれば、それらもまとめてインストールされます。