Diese Präsentation wurde erfolgreich gemeldet.
Die SlideShare-Präsentation wird heruntergeladen. ×

Distutil setuptools distribute

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Wird geladen in …3
×

Hier ansehen

1 von 25 Anzeige
Anzeige

Weitere Verwandte Inhalte

Diashows für Sie (20)

Anzeige

Ähnlich wie Distutil setuptools distribute (20)

Weitere von Atsushi Odagiri (20)

Anzeige

Aktuellste (20)

Distutil setuptools distribute

  1. 1. setup.py distutils/setuptools/distribute BPStyle #7 aodag
  2. 2. Pythonのパッケージインストールしたことあ るよね $ wget http://pypi.python. org/packages/source/b/bucho/bucho-0.0.4.tar.gz $ tar xvf bucho-0.0.4.tar.gz $ cd bucho-0.0.4 $ python setup.py install
  3. 3. setup.py これはなにをするものぞ
  4. 4. setup.py インストールとかする 配布するときにつけとく
  5. 5. setup.pyの中身 from distutils.core import setup setup(name="bp.bucho", version="0.1")
  6. 6. パッケージメタデータ Metadata-Version: 1.0 Name: bp.bucho Version: 0.1 Summary: UNKNOWN Home-page: UNKNOWN Author: UNKNOWN Author-email: UNKNOWN License: UNKNOWN Description: UNKNOWN Platform: UNKNOWN
  7. 7. from distutils.core import setup setup(     name="bp.bucho",      version="0.1",     author="Atsushi Odagiri",     author_email="aodagx@gmail.com",     license="MIT",     url="http://beproud.jp",     description="bucho shows things",     long_description="""     bp.bucho     ====================     bp.bucho is a sample package distribution.     """,     packages="bp.bucho", )
  8. 8.   Metadata-Version: 1.0 Name: bp.bucho Version: 0.1 Summary: bucho shows things Home-page: http://beproud.jp Author: Atsushi Odagiri Author-email: aodagx@gmail.com License: MIT Description: bp.bucho         ====================                  bp.bucho is a sample package distribution.          Platform: UNKNOWN
  9. 9. setup.pyを実行 build Pythonモジュールのコンパイルや、C拡張のコンパイルなど install 指定ディレクトリ(通常はsite-packages)以下にインストール大正の パッケージをコピー sdist ソースディストリビューションを作成 bdist_wininst windows向けインストーラ付きのディストリビューションを作成
  10. 10. setuptools/distribute distutilsの拡張 setup関数の引数が追加されている コマンドが追加されている プラッガブルな仕組みを提供
  11. 11. setuptoolsとdistributeの違い setuptoolsのソースを元にdistributeが作られた distributeはpython3対応 distributeは機能が増えている distributeはバグが直っている 今後は、distribute使おう 少なくともdistutils2が完成するまでは.
  12. 12.   $ curl -O http://python-distribute.org/distribute_setup.py $ python distribute_setup.py または $ pip install distribute 確認 $ easy_install --version distribute 0.6.14
  13. 13. virtualenvで使う方法 virtualenv --distribute env でも面倒なので、 環境変数でいつでもdistributeを使うように変更 export VIRTUALENV_USE_DISTRIBUTE=1 virtualenv env virtualenvwrapperでも有効
  14. 14. distributeを使ったパッケージ開発 テストする $ python setup.py test 登録して $ python setup.py register ソースディストリビューションをアップロード $ python setup.py sdist upload ドキュメントをアップロード $ python setup.py build_sphinx $ python setup.py upload_docs
  15. 15. テスト setup.py で、 setupのキーワード引数test_suite で、テストを指定す る。 setup.py test で、テスト実行。 test_suite で パッケージ("bp.bucho"など)を指定すると、 そのパッケージ以下の test_* なパッケージを再帰的に探して、 TestCaseを実行する。
  16. 16. register  PyPIにディストリビューションのメタデータを登録する。 メタデータの項目は以下のとおり(PEP241) Metadata-Version Name Version Platform Summary Description Keywords Home-Page Author Author-email License
  17. 17. upload PyPIにディストリビューションをアップロードする。 アップロード前にregisterしておく必要あり。
  18. 18. upload_docs http://package.python.org/{ディストリビューション} というURLにドキュメントをアップロードする。
  19. 19. プラッガブルな仕組み setupのentry_pointsでモジュールを指定。 実行時にpkg_resourcesでロードする。 setup(name="bar",     ....     entry_points="""     [bp.sample.command]     barcommand = bar.commands:main pkg_resources.get_entry_map("bar", "bp.sample.command")
  20. 20. setup.py のコマンドを追加する entry_pointsで、distutils.commands を追加するだけでOK setup(     name="fuga",     ...     entry_points="""     [distutils.commands]     setup_fuga=fuga.commands:fugafuga     """, ) python setup.py setup_fuga と使えるようになる。
  21. 21. install_requires, tests_require, extra_require 依存するディストリビューションを書く pipやeasy_installなどのインストーラは、 インストール時に依存するディストリビューションも取得してくれる。
  22. 22. extras_requireについて setup(     name="hogehoge",     ...     extras_require={         "openid":[              "python-openid",         ],     }, )
  23. 23. extras_require このときは、python-openidへの依存を追いかけない easy_install hogehoge extraを指定してインストールするときは、そのextraの依存を追いか ける。 以下の場合は、python-openidへの依存を追いかける easy_install hogehoge[openid] pipでは使えないよ><
  24. 24. console_scripts distutilsのscriptsと違い、Windowsの場合は exe ファイルのラッパー まで生成してくれる。 distutilsのscriptsは、実行権限をつけて、 $prefix/bin にコピーする だけ。
  25. 25. 参考 Installing Python Modules Distributing Python Modules PEP 241 -- Metadata for Python Software Packages Distribute Document

×