NKSSG
NakaKen Static Site Generator

Python

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 を立ち上げたときに仮想環境も同時にアクティベートする、という設定をすることができます。

Visual Studio Code Visual Studio Code

他の環境なら、次のようにコマンドを変えます。

【コマンドプロンプトの場合】
.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
    • ローカルサーバーの処理で使う

他にも、これらのパッケージで、別のパッケージを使う必要があれば、それらもまとめてインストールされます。