diff options
Diffstat (limited to 'docs/tutorials/wiki2/installation.rst')
| -rw-r--r-- | docs/tutorials/wiki2/installation.rst | 276 |
1 files changed, 276 insertions, 0 deletions
diff --git a/docs/tutorials/wiki2/installation.rst b/docs/tutorials/wiki2/installation.rst new file mode 100644 index 000000000..ae2eb4d06 --- /dev/null +++ b/docs/tutorials/wiki2/installation.rst @@ -0,0 +1,276 @@ +============ +Installation +============ + +For the most part, the installation process for this tutorial +duplicates the steps described in :ref:`installing_chapter` and +:ref:`project_narr`, however it also explains how to install +additional libraries for tutorial purposes. + +Preparation +=========== + +Please take the following steps to prepare for the tutorial. The +steps are slightly different depending on whether you're using UNIX or +Windows. + +Preparation, UNIX +----------------- + +#. Install SQLite3 and its development packages if you don't already + have them installed. Usually this is via your system's package + manager. For example, on a Debian Linux system, do ``sudo apt-get + install libsqlite3-dev``. + +#. If you don't already have a Python 2.6 interpreter installed on + your system, obtain, install, or find `Python 2.6 + <http://www.python.org/download/releases/2.6.6/>`_ for your system. + +#. Install the latest `setuptools` into the Python you + obtained/installed/found in the step above: download `ez_setup.py + <http://peak.telecommunity.com/dist/ez_setup.py>`_ and run it using + the ``python`` interpreter of your Python 2.6 installation: + + .. code-block:: text + + $ /path/to/my/Python-2.6/bin/python ez_setup.py + +#. Use that Python's `bin/easy_install` to install `virtualenv`: + + .. code-block:: text + + $ /path/to/my/Python-2.6/bin/easy_install virtualenv + +#. Use that Python's virtualenv to make a workspace: + + .. code-block:: text + + $ path/to/my/Python-2.6/bin/virtualenv --no-site-packages bigfntut + +#. Switch to the ``bigfntut`` directory: + + .. code-block:: text + + $ cd bigfntut + +#. (Optional) Consider using ``source bin/activate`` to make your + shell environment wired to use the virtualenv. + +#. Use ``easy_install`` to get :mod:`pyramid` and its direct + dependencies installed: + + .. code-block:: text + + $ bin/easy_install pyramid + +#. Use ``easy_install`` to install various packages from PyPI. + + .. code-block:: text + + $ bin/easy_install docutils nose coverage zope.sqlalchemy \ + SQLAlchemy repoze.tm2 + +Preparation, Windows +-------------------- + +#. Install, or find `Python 2.6.6 + <http://python.org/download/releases/2.6.6/>`_ for your system. + +#. Install the latest `setuptools` into the Python you + obtained/installed/found in the step above: download `ez_setup.py + <http://peak.telecommunity.com/dist/ez_setup.py>`_ and run it using + the ``python`` interpreter of your Python 2.6 installation using a + command prompt: + + .. code-block:: text + + c:\> c:\Python26\python ez_setup.py + +#. Use that Python's `bin/easy_install` to install `virtualenv`: + + .. code-block:: text + + c:\> c:\Python26\Scripts\easy_install virtualenv + +#. Use that Python's virtualenv to make a workspace: + + .. code-block:: text + + c:\> c:\Python26\Scripts\virtualenv --no-site-packages bigfntut + +#. Switch to the ``bigfntut`` directory: + + .. code-block:: text + + c:\> cd bigfntut + +#. (Optional) Consider using ``bin\activate.bat`` to make your shell + environment wired to use the virtualenv. + +#. Use ``easy_install`` to get :mod:`pyramid` and its direct + dependencies installed: + + .. code-block:: text + + c:\bigfntut> Scripts\easy_install pyramid + +#. Use ``easy_install`` to install various packages from PyPI. + + .. code-block:: text + + c:\bigfntut> Scripts\easy_install -i docutils \ + nose coverage zope.sqlalchemy SQLAlchemy repoze.tm2 + + +.. _sql_making_a_project: + +Making a Project +================ + +Your next step is to create a project. :mod:`pyramid` supplies a +variety of templates to generate sample projects. We will use the +``pyramid_routesalchemy`` template, which generates an application +that uses :term:`SQLAlchemy` and :term:`URL dispatch`. + +The below instructions assume your current working directory is the +"virtualenv" named "bigfntut". + +On UNIX: + +.. code-block:: text + + $ bin/paster create -t pyramid_routesalchemy tutorial + +On Windows: + +.. code-block:: text + + c:\bigfntut> Scripts\paster create -t pyramid_routesalchemy tutorial + +.. note:: If you are using Windows, the ``pyramid_routesalchemy`` + Paster template may not deal gracefully with installation into a + location that contains spaces in the path. If you experience + startup problems, try putting both the virtualenv and the project + into directories that do not contain spaces in their paths. + +Installing the Project in "Development Mode" +============================================ + +In order to do development on the project easily, you must "register" +the project as a development egg in your workspace using the +``setup.py develop`` command. In order to do so, cd to the "tutorial" +directory you created in :ref:`sql_making_a_project`, and run the +"setup.py develop" command using virtualenv Python interpreter. + +On UNIX: + +.. code-block:: text + + $ cd tutorial + $ ../bin/python setup.py develop + +On Windows: + +.. code-block:: text + + c:\bigfntut> cd tutorial + c:\bigfntut\tutorial> ..\Scripts\python setup.py develop + +.. _sql_running_tests: + +Running the Tests +================= + +After you've installed the project in development mode, you may run +the tests for the project. + +On UNIX: + +.. code-block:: text + + $ ../bin/python setup.py test -q + +On Windows: + +.. code-block:: text + + c:\bigfntut\tutorial> ..\Scripts\python setup.py test -q + +Starting the Application +======================== + +Start the application. + +On UNIX: + +.. code-block:: text + + $ ../bin/paster serve tutorial.ini --reload + +On Windows: + +.. code-block:: text + + c:\bifgfntut\tutorial> ..\Scripts\paster serve tutorial.ini --reload + +Exposing Test Coverage Information +================================== + +You can run the ``nosetests`` command to see test coverage +information. This runs the tests in the same way that ``setup.py +test`` does but provides additional "coverage" information, exposing +which lines of your project are "covered" (or not covered) by the +tests. + +To get this functionality working, we'll need to install a couple of +other packages into our ``virtualenv``: ``nose`` and ``coverage``: + +On UNIX: + +.. code-block:: text + + $ ../bin/easy_install nose coverage + +On Windows: + +.. code-block:: text + + c:\bigfntut\tutorial> ..\Scripts\easy_install nose coverage + +Once ``nose`` and ``coverage`` are installed, we can actually run the +coverage tests. + +On UNIX: + +.. code-block:: text + + $ ../bin/nosetests --cover-package=tutorial --cover-erase --with-coverage + +On Windows: + +.. code-block:: text + + c:\bigfntut\tutorial> ..\Scripts\nosetests --cover-package=tutorial \ + --cover-erase --with-coverage + +Looks like our package's ``models`` module doesn't quite have 100% +test coverage. + +Visit the Application in a Browser +================================== + +In a browser, visit ``http://localhost:6543/``. You will see the +generated application's default page. + +Decisions the ``pyramid_routesalchemy`` Template Has Made For You +================================================================= + +Creating a project using the ``pyramid_routesalchemy`` template makes +the assumption that you are willing to use :term:`SQLAlchemy` as a +database access tool and :term:`url dispatch` to map URLs to code. +:mod:`pyramid` supports any persistent storage mechanism (e.g. object +database or filesystem files, etc). It also supports an additional +mechanism to map URLs to code (:term:`traversal`). However, for the +purposes of this tutorial, we'll only be using url dispatch and +SQLAlchemy. + |
