読者です 読者をやめる 読者になる 読者になる

気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】Pythonプロフェッショナルプログラミング第2版-part01

Python メモ 読書メモ

先日購入したこの本だが、part1が読み終わったので軽くメモを残す。

Pythonパッケージ作成方法やソース管理等、実務で役立つ情報が満載であった印象。 part2ではさらに実務よりになる様子で、読むのが楽しみ。

Pythonプロフェッショナルプログラミング第2版

Pythonプロフェッショナルプログラミング第2版

構成

part1の構成としては以下のとおり

  • Pythonをはじめよう
  • Webアプリケーションを作る
  • Pythonプロジェクトの構成とパッケージ作成

virtualenvの目的

  • OSの管理権限なくてもPythonライブラリを自由にインストールできる
  • 目的別にインストールできるので、依存関係やパッケージインストールの目的が明確になる

virtualenvのオプション

  • -p --Python
    • virtualenv環境で使用するPythonを指定。
  • --clear
    • 指定されたvirtualenv環境から依存ライブラリなどを削除し、環境を初期化する
  • -q --quiet
    • virtualenvコマンド実行時に、コンソールへ出力する情報量を抑える
  • -v --verbose
    • 情報量を増やす
  • 常に指定したいオプションは、設定ファイルに書ける
    • $HOME/.virtualenv/virtualenv.INFORMATION
  • どうしても必要なとき以外は、--system-site-packagesオプションは利用しない

Mercurialのセットアップ

$ pip install mercurial
$ touch ~/.hgrc
$ vim ~/.hgrc
[ui]
username=anyuser <anyuser@hoge.com>

[extensions]
color=
pager=

[pager]
pager=LESS='FSRX' less
$ mkdir any_project
$ cd any_project
$ hg init

pip

  • パッケージ開発の場合、editableオプションでインストールする
    • pip install -e ./any_package
  • hgでローカルにクローンしつつ、editableでインストール

Pythonパッケージ

  • パッケージ構成
  projectname
  +-- MANIFEST.in
  +-- README.rst
  +-- packagename/
  |   +-- __init__.py
  |   +-- module.py
  |   +-- templates/
  |       +-- index.html
  +-- setup.py
# setup.py
from setuptools import setup, find_packages
setup(
    name='any_packages',
    version='1.0.0',
    packages=find_packages(),
    include_package_data=True,
    install_requires=[
        'Flask',
    ], # バージョンを指定しないのが一般的
    # パッケージ用コマンド
    entry_points="""
        [console_scripts]
        any_packages= any_packages:main
    """,

)
   
  • パッケージの基本1:この4つのファイルと、アプリケーションファイルを認識しておく

    • MANIFEST.in
      • recursive-include projectname *.html *.css
        • recursive-includeで、指定パターンに一致するファイル全てを同梱可能(htmlやcss等)
      • include LICENSE.txt
    • setup.py
      • from setuptools import setup, find_packages
    • README.rst
    • LICENSE.txt
  • パッケージの基本2:pip install -e .で、開発用インストール

  • パッケージの基本3:python setup.py sdistで、ソースパッケージ作成