ゲームエフェクトデザイナーのブログ | A Real-Time VFX Artist's Blog

About Making Materials on UE, Making Tools with C#, etc

Pythonのパッケージ管理周りについてのメモ

前回のMayaのスクリプト環境の記事に続いて調べてみました。

メモと言っても、とても丁寧にまとめられた沢山の記事をペタペタ貼り付けただけのものではありますが。。しかし把握しやすいように図も作ってみました。

そもそも‥モジュールとパッケージとライブラリの違いってなんじゃらほい?

とりあえずなんとなく理解。。

さて、まずはパッケージ管理システムの基本的なことについての参考記事をペタリ。

なるほど、その名の通り何かの開発環境にパッケージ化された便利な機能(プラグインやツール)を組み込む際に、それらのインストールやアンインストールを含め管理が楽になるように用意されたものがパッケージ管理システムなんですね。

パッケージ管理システムで定番なものには‥

Linuxyum
Ruby ‥ Bundler
・.NET ‥ NuGet
Python ‥ pip

といったものがあるようです。

確かにサーバー構築の際に「sudo yum~」というコマンドを何度か打った覚えが。。あとVisual Studio CommunityでC#のライブラリをインストールする際にNuGetも利用しますね。

さて、肝心のPythonのパッケージ管理周りを調べてみると‥

う。。思いの外ややこしい。

という訳で図にまとめてみました(100%のサイズで見る場合はこちら)。

f:id:moko_03_25:20190517013558p:plain

パッケージ管理システムは基本的にターミナルからコマンドを入力して利用するようですが、Pythonで定番なのは「pip」と呼ばれるもののようですね。そして pip の基本的なコマンドについてはこちらの記事がとても分かりやすいです。

もうちょい詳しくpipについて解説されている記事。

それから、パッケージを導入するだけでなくパッケージを作成して配布することもあると思うのですが、そのあたりについてはこちらにまとまっています。

パッケージの形式には「Wheels」と「Eggs」の2種類あるようで。

Pythonにも色々バージョンがありますが、複数バージョンの切り替えについて。

 

Anacondaについて


データサイエンスや機械学習関連アプリケーションのためのPythonパッケージを提供するディストリビューション(プラットフォーム)ということです。

Anacondaに付属するパッケージ管理システムは「Conda」。
なのでパッケージは pipコマンドではなく Condaコマンドでインストールするそうな。

またPythonによるIDE統合開発環境)の「Spyder」も同梱されている模様。Pythonの色んなパッケージが入った「WinPython」にも「Spyder」は同梱されているそうですね。

AnacondaによるPython環境の構築方法については、下記の記事が丁寧にまとまっている上に新しめの記事になります。 

 

Djangoについて


Pythonを使ったWebアプリケーションのフレームワークで定番のものだそうです。
同じようなものに「Flask」があるようです。

チュートリアルとして書かれた記事で気になったのでペタリ。

RailsMVC(モデル・ビュー・コントロール)と同じような感じで役割分担するんですね(Viewの役割りがお互いに違っていてややこしいことになってますが‥)。

[RailsPHP] ‥ MVCモデル
・M ‥ Model
・V ‥ View
・C ‥ Controller

[PythonDjango] ‥ MVTモデル
・M ‥ Model
・V ‥ View(MVCモデルのControllerにあたる)
・T ‥ Template(MVCモデルのViewにあたる)


ウェブアプリをPythonで開発する場合、仮想環境にVirtual Boxを利用、その操作にVagrantを利用、開発環境にAnacondaを利用‥といった感じでウェブアプリ開発について全く初心者の状態で手をつけると混乱する感じでした。

自分もPythonでのウェブアプリ開発の流れを知っておきたいと思ってチュートリアルを一度試したのですが、うまくコマンドが通らなくなったりして環境構築の段階で中断しちゃいました。

今はCloud9 + Ruby on Railsで流れを掴んできたので、そのうちリベンジしたいなと。

ひとまずメモはこの辺で。