自作モジュール作成 5 Eggの使い方(1)

前回までで、自分だけで使うプログラムでのパッケージ化ができるようになりました。
また、誰かが作ったパッケージを使わないのであれば、このやり方で十分です。

    これまでの道のり

  1. 自作モジュール作成 1 別ファイルの取り込み
  2. 自作モジュール作成 2 複数モジュールをパッケージにまとめる
  3. 自作モジュール作成 3 同一階層ディレクトリ中ファイルのインポート
  4. 自作モジュール作成 4 パッケージを直接インポートする(前回)

エキスパートPythonプログラミングを読んでみたのだが

『エキスパートPythonプログラミング』の第5章によると、
「前章では、アプリケーションコードをeggを使って複数のパッケージに分割する方法を見てきました。」
とあります。

ところが、いくら第4章を見ても、『4.7.4 eggの使用』というのがちょこっとあるだけで、よくわかりません。
アマゾンレビューによれば、『エキスパートPythonプログラミング』は軟弱プログラマーお断りなので、私に理解できないだけなのかもしれません。

Python道を極めた達人であれば、本書の説明だけでも分かるのかな?
でも、それほどの達人であれば、Eggの使い方ぐらいはマスターしていそうだし。

まあ、悩んでてもしょうがないので、軟弱な私はグーグル先生をあたることにしました。

Python界隈のカオス

しかしながら、巷にあふれているPython解説サイトは、Python 2系のものがほとんどなので、これをPytho 3系に翻訳しなければなりません。

また、Pythonで使用されている標準ツールが、歴史的な経緯で頻繁に変わっているようなので、現在のトレンドが何なのかということにも注意する必要があります。

Python界隈では、Pythonのバージョンと標準ツールの組み合わせがかなり入り乱れているようで、何が本当なのかがよくわかりません。

Aブログで、「パッケージ化には、○○を使え!」と書いてあるかと思えば、Bブログでは「○○を使ってパッケージ化するのは推奨しない」と書かれてあったりで、軟弱プログラマーの私は、涙がこぼれそうになります。

気持ち新たにEggを使うための基本技術

■メモ
・virtualenvコマンドで独自開発環境を構築する。
・virtualenvのインストール

$ sudo `which pip3` install virtualenv

・独自開発環境の構築

$ virtualenv myenv1

--no-downloadオプションをつけると、PyPIからプレインストールされたパッケージをダンロード(インストール?)しない。

$ virtualenv --no-download myenv2

--no-downloadなしのとき。
パッケージを調べる。

$ cd myenv1
$ souce bin/activate
$ pip list --format=columns
Package    Version
---------- -------
appdirs    1.4.3  
packaging  16.8   
pip        9.0.1  
pyparsing  2.2.0  
setuptools 34.3.1 
six        1.10.0 
wheel      0.29.0 

--no-downloadありのとき。
パッケージを調べる。

$ cd myenv2
$ souce bin/activate
$ pip list --format=columns
Package    Version
---------- -------
pip        9.0.1  
setuptools 28.8.0 
wheel      0.29.0 

・Eggを一から作るのは面倒なので、pasterというコマンドを使う。
・pasterコマンドは、PasteScriptというパッケージをインストールすれば使うことができる。

$ pip install PasteScript

または、

$ easy_install PasteScript

easy_installコマンドでインストールしたパッケージはアンインストールできないので、pipコマンドを使う方がおすすめらしい。

・パッケージのアンインストール

$ pip uninstall PasteScript

長くなったので、今回はここまで。

自作モジュール作成 5 pasterでEggを作成する »

参考サイト

Python開発環境の構築から作成したeggを別環境へインストールするまで

Pythonプログラミング物語 © 2016 Frontier Theme