こんにちは、吉政創成 菱沼です。
このたび、プログラミング初心者が「Python実践レシピ/技術評論社」を学んだらどうなったかという事をテーマにコラムを書くことになりました…。
「Python実践レシピ」と言えば、Pythonエンジニア育成推進協会のPython 3 エンジニア認定実践試験の主教材です。この試験ではPythonを実践的に使っていく上で重要な仕様やライブラリの使い方が問われるわけで、対象は初心者ではなく、プロの方々やプロを目指される方が受験されるものでして、のほほんと学んでいるだけの私が、本当に私が書くんですかと何度も伺いましたが、なんと心が広いことに初心者目線でよいというご回答をいただき、書かせて頂くことと相成りました。
なので、最終的に実践試験目指すぞとお考えの初心者の方々、ぜひ一緒に学んでいただければと思います。
そしてプロな方々…どうぞお手柔らかに、そして生暖かくも優しい眼差しでお読みいただけますと幸いです。
ちなみに実践試験について知りたい方は以下をご覧ください。
●Python3エンジニア認定実践試験
https://www.pythonic-exam.com/exam/jissen
●実務で活躍できる技量を持っていることを証明するなら実践試験がおすすめ
https://www.pythonic-exam.com/archives/6776
では、「Chapter1 Pythonの環境」から、「Pythonパッケージを管理する」の項目から学んでいきます。
Pythonのパッケージをインストールするpipコマンド
Pythonのパッケージをインストールするときは、コマンドプロンプトからpipコマンドを使用して行います。最初の項目はこのpipコマンドです。
コマンドプロンプトはWindowsなら検索窓で「cmd」と検索すると起動します。
というわけで、まず引用です。
P.2
Pythonパッケージの管理ツールpipについて解説します。pipには以下のようなさまざまな機能があります。
・PyPI(https://pypi.org/)に公開されているPythonパッケージのインストール
・インストールしたPythonパッケージのアンインストール
・インストールしたPythonパッケージのアップグレード
pipはPython3.4以降では標準でインストールされていますが、環境によってはインストールされていない場合があります。Pythonのインストール時にpipのインストールをスキップしたり、あとからpipをアンインストールしたりといったケースが該当します。そのような環境では、次のようにensurepipモジュールを実行することでpipをインストールできます。ensurepipモジュールは、pipがインストール済みの場合は何もしません。
pipがインストールされていない環境での導入方法
$ python -m ensurepip
なお、Debian、Ubuntuに標準でインストールされているPythonには、ensurepipモジュールが存在しません。代わりにaptコマンドでpython3-pipというパッケージをインストールしてください。
$ sudo apt install -y python3-pip
この時に使われるコマンド[ensurepip] はPythonの標準ライブラリ内のパッケージで、3.4から追加されたんだそうです。これが登場したことで、pipのインストールが楽になったんだとか。
https://docs.python.org/3/library/ensurepip.html#module-ensurepip
ちなみに私のPCにpipが入ってるのは知ってますが一応やってみました。入ってますよーだそうです。
- pipで注意したいこと
pipを使ってインストールするときの注意事項があるそうです。
P.3
pip installコマンドはデフォルトではパッケージをシステム全体で利用できる領域にインストールしますが、このインストール先は極力避けでください。代わりに、venvで作った仮想環境の利用をお勧めします。仮想環境上でpip installを実行すると、パッケージを仮想環境用の独立した領域にインストールします。
1.2の項目でvenvについて学ぶ際に、分けた方が良い理由の解説がありますので、詳細はその時に学びたいと思いますが、とりあえず簡単に書いておくと、同じパッケージの別バージョンを同居させることができないので、複数のプロジェクトを同一環境上で作ることがあった場合、システム領域全体に対してだと別のバージョンを使えないという問題が出てくるためだとのことでした。
pipの基本的な使い方は?
次にパッケージのインストール方法や、インストールしたいパッケージのバージョンを指定する方法などを学びます。
1)パッケージをインストールしてみる
実際にパッケージをインストールしてみます。
P.2、3
pipでパッケージをインストールするには「pip install パッケージ名」というコマンドを実行します。「パッケージ名」と同じ名前のパッケージがPyPIに公開されていれば、そのパッケージがインストールされます。
(中略)
上記の方法では、コマンド実行時点での最新バージョンがインストールされます。また、依存パッケージ(ここではpeppercorn)も同時にインストールされます。
書籍では、「sampleproject」というパッケージをインストールしていましたのでやってみます。
https://pypi.org/project/sampleproject
出来た模様。
- 補足:.whlって何。
ところで、コマンドを入れた後、ずらずらと並ぶ中に「.whl」という拡張子がちょこちょこと見えます。
パッケージの中には、ビルドが必要なものがあるのだそうですが、この「.whl」は環境に合わせてビルド済みにした状態でパッケージ化されたWheelと呼ばれるものだそうです。
文中にある依存パッケージはWheelの中に含まれているわけではなく、pipコマンドを使うときに同時にダウンロードして持ってきて、インストールしてくれているようです。依存パッケージがWheelに含まれていない理由としては、依存パッケージ側がアップデートされるたびにWheelを作り直さなくてはならなくなるから、とのことでした。
というわけで、このWheelを使えば面倒少なく、すぐに使える状態でパッケージをインストールできるということになりますが、このパッケージはパッケージ管理者がアップしてくださるものだという事なので、PyPIにないときはあきらめて、自分でビルドに必要なOSのライブラリを用意してインストールしなくてはならない場合もあるようです。
ただ、依存パッケージに関しては、この場合でもインストール時にpipコマンドを使うので、何もせずとも一緒に入れてくれるそう。
ちなみに、パッケージの依存パッケージを確認したいときは、[pip show パッケージ名]で確認できるようです。
なお、Wheelが用意されているかは各パッケージのページ内にある「ファイルのダウンロード」内から確認できます。ちなみにこんな感じでUPされています。
Wheelについては顧問理事の寺田さまのコラムでも書かれていますので、ぜひそちらもご参照ください。
Pythonのおすすめ開発環境ver.2024
https://www.pythonic-exam.com/archives/7751
2)バージョンを指定して、パッケージをインストールしてみる
では次にパッケージのバージョンを指定してインストールする方法です。
P.3
特定のバージョンのパッケージをインストールしたい場合は、パッケージ名の後ろに「==バージョン番号」を付けます。
(中略)
ある範囲のバージョンの中で最新のものをインストールしたい場合は、以下のように>、<、=を使ってバージョンの範囲を指定します。この指定方法ではダブルクォート(” ”)でパッケージ名とバージョンを囲む必要があります。
まずはバージョン番号指定でやってみます。今回はテキスト通り、[pip install sampleproject==1.2.0]です。
インストールできました。すでに3.0が入っていたので、一度アンインストールしてからインストールしている模様。
では次に、バージョンの範囲指定です。テキストでは1.2.0以上、2.0.0未満の中から最新バージョンという指定をします。
[pip install “sampleproject>=1.2.0,<2.0.0”]
無事完了しました。1.3.1だったようです。
ついでに、pipのバージョン上げたら?と提案されたので、上げてみます。
緑の文字で書かれているものを打ち込んでみます。なんて親切仕様…。
成功しました。
それではきりが良いので、今回はこちらで終了です。お付き合いいただきありがとうございました。