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
- ローカルサーバーの処理で使う
他にも、これらのパッケージで、別のパッケージを使う必要があれば、それらもまとめてインストールされます。