(機械翻訳)インストール

あなたが始める前に

このチュートリアルでは、** ref: `installing_chapter`の手順に従っていることを前提としていますが、**仮想環境を作成したり、Pyramid **をインストールしたりすることはありません。それにより、あなたは次の要件を満たします。

  • Pythonインタプリタがオペレーティングシステムにインストールされています。
  • あなたは:ref: `require-for-installing-packages`を満足しています。

cookiecutterをインストールする

:term: `cookiecutter`を使って、PythonパッケージプロジェクトテンプレートからPythonパッケージプロジェクトを作成します。 `Cookiecutterのインストール<https://cookiecutter.readthedocs.io/en/latest/installation.html> `_の指示に従ってください。

cookiecutterからピラミッドプロジェクトを生成する

UNIXの場合はホームディレクトリに、Windowsの場合はルートにPyramidプロジェクトを作成します。 `` cookiecutter``をインストールした場所へのパスを知っていると仮定します。次のコマンドを発行し、プロンプトのデフォルトを次のように変更します。

UNIXの場合

$ cd ~
$ cookiecutter gh:Pylons/pyramid-cookiecutter-zodb --checkout 1.9-branch

Windowsの場合

c:\> cd \
c:\> cookiecutter gh:Pylons/pyramid-cookiecutter-zodb --checkout 1.9-branch

すべてのオペレーティングシステム

最初の項目の入力を求められたら、returnキーを押してデフォルトの `` yes``を受け入れます。

You've cloned ~/.cookiecutters/pyramid-cookiecutter-zodb before.
Is it okay to delete and re-clone it? [yes]: yes
project_name [Pyramid Scaffold]: myproj
repo_name [myproj]: tutorial

新しく作成したプロジェクトにディレクトリを変更する

UNIXの場合

$ cd tutorial

Windowsの場合

c:\> cd tutorial

`` VENV``環境変数を設定して使用する

`` VENV``環境変数を仮想環境の絶対パスに設定し、それを先に使用します。

UNIXの場合

$ export VENV=~/tutorial

Windowsの場合

c:\tutorial> set VENV=c:\tutorial

仮想環境を作成する

UNIXの場合

$ python3 -m venv $VENV

Windowsの場合

Pythonの各バージョンは異なるパスを使用するため、Pythonバージョンのコマンドへのパスを調整する必要があります。最近のバージョンのWindows用Python 3インストーラは、Pythonランチャをインストールするようになりました。

Python 2.7:

c:\tutorial> c:\Python27\Scripts\virtualenv %VENV%

Python 3.6:

c:\tutorial> python -m venv %VENV%

仮想環境におけるパッケージングツールのアップグレード

UNIXの場合

$ $VENV/bin/pip install --upgrade pip setuptools

Windowsの場合

c:\tutorial> %VENV%\Scripts\pip install --upgrade pip setuptools

開発モードでのプロジェクトのインストール

プロジェクトの開発を容易にするためには、プロジェクトをワークスペースの開発卵として登録する必要があります。同時にテスト要件をインストールします。次のコマンドでそれを行います。

UNIXの場合

$ $VENV/bin/pip install -e ".[testing]"

Windowsの場合

c:\tutorial> %VENV%\Scripts\pip install -e ".[testing]"

すべてのオペレーティングシステム

コンソールは `` pip``でパッケージのチェックと欠落しているパッケージのインストールを表示します。このコマンドを実行すると、次のような行が表示されます。

Successfully installed BTrees-4.3.1 Chameleon-3.0 Mako-1.0.6 \
MarkupSafe-0.23 PasteDeploy-1.5.2 Pygments-2.1.3 WebOb-1.6.3 \
WebTest-2.0.23 ZConfig-3.1.0 ZEO-5.0.4 ZODB-5.1.1 ZODB3-3.11.0 \
beautifulsoup4-4.5.1 coverage-4.2 mock-2.0.0 pbr-1.10.0 persistent-4.2.2 \
py-1.4.31 pyramid-1.7.3 pyramid-chameleon-0.3 pyramid-debugtoolbar-3.0.5 \
pyramid-mako-1.0.2 pyramid-tm-1.1.1 pyramid-zodbconn-0.7 pytest-3.0.5 \
pytest-cov-2.4.0 repoze.lru-0.6 six-1.10.0 transaction-2.0.3 \
translationstring-1.3 tutorial venusian-1.0 waitress-1.0.1 \
zc.lockfile-1.2.1 zdaemon-4.2.0 zodbpickle-0.6.0 zodburi-2.0 \
zope.deprecation-4.2.0 zope.interface-4.3.3

テスト要件は、プロジェクトの `` setup.py``ファイル、 `` tests_require``と `` extras_require``スタンザで定義されています。

24
25
26
27
28
tests_require = [
    'WebTest >= 1.3.1',  # py3 compat
    'pytest',
    'pytest-cov',
]
48
49
50
    extras_require={
        'testing': tests_require,
    },

テストを実行する

プロジェクトを開発モードおよびテスト要件にインストールしたら、プロジェクトのテストを実行できます。次のコマンドは、テストを実行するモジュールを指定するpy.testにオプションを提供し、quietモードでpy.testを実行します。

UNIXの場合

$ $VENV/bin/py.test -q

Windowsの場合

c:\tutorial> %VENV%\Scripts\py.test -q

テストが正常に終了するには、次のような出力が表示されます。

.
1 passed in 0.24 seconds

テストカバレッジ情報を公開する

`` py.test``コマンドを実行するとテストカバレッジ情報を見ることができます。これは、 `` py.test``と同じようにテストを実行しますが、term: `カバレッジ(coverage) &#39;情報を追加して、テストの対象となるプロジェクトの行を公開します。

私たちは既に `` pytest-cov``パッケージを仮想環境にインストールしていますので、カバレッジを持ってテストを実行することができます。

UNIXの場合

$ $VENV/bin/py.test --cov --cov-report=term-missing

Windowsの場合

c:\tutorial> %VENV%\Scripts\py.test --cov --cov-report=term-missing

成功すると、次のような出力が表示されます。

======================== test session starts ========================
platform Python 3.6.0, pytest-3.0.5, py-1.4.31, pluggy-0.4.0
rootdir: /Users/stevepiercy/tutorial, inifile:
plugins: cov-2.4.0
collected 1 items

tutorial/tests.py .
------------------ coverage: platform Python 3.6.0 ------------------
Name                   Stmts   Miss  Cover   Missing
-------------------------------------------------------
tutorial/__init__.py      14      9    36%   7-8, 14-20
tutorial/models.py        10      6    40%   9-14
tutorial/views.py          4      0   100%
-------------------------------------------------------
TOTAL                     28     15    46%

===================== 1 passed in 0.31 seconds ======================

私たちのパッケージは100%のテストカバレッジを持っていません。

テストとカバレッジcookiecutterのデフォルト

Cookiecuttersには、 `` py.test``とテストカバレッジのデフォルト設定が含まれています。これらの設定ファイルはパッケージのルートにある `` pytest.ini``と `` .coveragerc``です。これらのデフォルトがなければ、テストとカバレッジを実行するモジュールへのパスを指定する必要があります。

UNIXの場合

$ $VENV/bin/py.test --cov=tutorial tutorial/tests.py -q

Windowsの場合

c:\tutorial> %VENV%\Scripts\py.test --cov=tutorial tutorial\tests.py -q

py.testは次のようになります:ref: Pythonテストの発見のための規則<pytest:test discovery> `であり、cookiecutterのデフォルト設定は `py.test``にテストとカバレッジを実行するモジュールを見つける場所を指定します。

参考

:ref: pytest:usage`のpy.testのドキュメントを参照するか、 `py.test -h``を呼び出してその完全なオプションセットを見てください。

アプリケーションを起動する

アプリケーションを起動します。 `` pserve``の詳細については:ref: `what_is_this_pserve_thing`を参照してください。

UNIXの場合

$ $VENV/bin/pserve development.ini --reload

Windowsの場合

c:\tutorial> %VENV%\Scripts\pserve development.ini --reload

注釈

あなたのOSのファイアウォールがあれば、Pythonが着信ネットワーク接続を受け入れることを許可するダイアログボックスが表示されます。

成功した場合、コンソールに次のようなメッセージが表示されます。

Starting subprocess with file monitor
Starting server in PID 44078.
Serving on http://localhost:6543
Serving on http://localhost:6543

これは、サーバーが要求を受け入れる準備ができていることを意味します。

ブラウザでアプリケーションにアクセスする

ブラウザでhttp:// localhost:6543 /をご覧ください。生成されたアプリケーションのデフォルトページが表示されます。

あなたが気づくことの1つは、ページの右側の&quot;デバッグツールバー&quot;アイコンです。アイコンの目的について詳しくは、ref: `debug_toolbar`を参照してください。開発中にアプリケーションに関する情報を得ることができます。

`` zodb`` cookiecutterがあなたのために作った決定

`` zodb`` cookiecutterを使ってプロジェクトを作成すると、以下の前提が成り立ちます:

  • あなたは永続的な記憶のためにterm: `ZODB`を使います。
  • あなたはURLをコードにマップするためにterm: `traversal`を使います。
  • pyramid_zodbconnpyramid_tm、およびtransaction_パッケージを使用して:term: `ZODB`を使って接続とトランザクションを管理したいとします。
  • あなたはテンプレートをレンダリングするためにpyramid_chameleon_を使いたいと思う。異なるテンプレートエンジンを使用することもできますが、このチュートリアルを作成するには1つを選択する必要がありました。いくつかのオプションについては:ref: `available_template_system_bindings`を参照してください。

注釈

:app: Pyramid`は永続ストレージ機構(例えば、SQLデータベースやファイルシステムファイル)をサポートします。また、URLをコード(:term: `URL dispatch)にマップする追加のメカニズムもサポートしています。しかし、このチュートリアルでは、term: traversal`と:term: ZODB`のみを使用します。