summaryrefslogtreecommitdiff
path: root/docs/quick_tutorial/requirements.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/quick_tutorial/requirements.rst')
-rw-r--r--docs/quick_tutorial/requirements.rst214
1 files changed, 214 insertions, 0 deletions
diff --git a/docs/quick_tutorial/requirements.rst b/docs/quick_tutorial/requirements.rst
new file mode 100644
index 000000000..1f2b4da97
--- /dev/null
+++ b/docs/quick_tutorial/requirements.rst
@@ -0,0 +1,214 @@
+.. _qtut_requirements:
+
+============
+Requirements
+============
+
+Let's get our tutorial environment set up. Most of the set up work is in
+standard Python development practices (install Python and make an isolated
+virtual environment.)
+
+.. note::
+
+ Pyramid encourages standard Python development practices with packaging
+ tools, virtual environments, logging, and so on. There are many variations,
+ implementations, and opinions across the Python community. For consistency,
+ ease of documentation maintenance, and to minimize confusion, the Pyramid
+ *documentation* has adopted specific conventions that are consistent with the
+ :term:`Python Packaging Authority`.
+
+This *Quick Tutorial* is based on:
+
+* **Python 3.5**. Pyramid fully supports Python 3.3+ and Python 2.7+. This
+ tutorial uses **Python 3.5** but runs fine under Python 2.7.
+
+* **venv**. We believe in virtual environments. For this tutorial, we use
+ Python 3.5's built-in solution :term:`venv`. For Python 2.7, you can install
+ :term:`virtualenv`.
+
+* **pip**. We use :term:`pip` for package management.
+
+* **Workspaces, projects, and packages.** Our home directory will contain a
+ *tutorial workspace* with our Python virtual environment and *Python
+ projects* (a directory with packaging information and *Python packages* of
+ working code.)
+
+* **Unix commands**. Commands in this tutorial use UNIX syntax and paths.
+ Windows users should adjust commands accordingly.
+
+.. note::
+ Pyramid was one of the first web frameworks to fully support Python 3 in
+ October 2011.
+
+.. note::
+ Windows commands use the plain old MSDOS shell. For PowerShell command
+ syntax, see its documentation.
+
+Steps
+=====
+
+#. :ref:`install-python-3`
+#. :ref:`create-a-project-directory-structure`
+#. :ref:`set-an-environment-variable`
+#. :ref:`create-a-virtual-environment`
+#. :ref:`install-pyramid`
+
+
+.. _install-python-3:
+
+Install Python 3
+----------------
+
+See the detailed recommendation for your operating system described under
+:ref:`installing_chapter`.
+
+- :ref:`for-mac-os-x-users`
+- :ref:`if-you-don-t-yet-have-a-python-interpreter-unix`
+- :ref:`if-you-don-t-yet-have-a-python-interpreter-windows`
+
+
+.. _create-a-project-directory-structure:
+
+Create a project directory structure
+------------------------------------
+
+We will arrive at a directory structure of ``workspace -> project -> package``,
+where our workspace is named ``quick_tutorial``. The following tree diagram
+shows how this will be structured, and where our :term:`virtual environment`
+will reside as we proceed through the tutorial:
+
+.. code-block:: text
+
+ └── ~
+ └── projects
+ └── quick_tutorial
+ ├── env
+ └── step_one
+ ├── intro
+ │ ├── __init__.py
+ │ └── app.py
+ └── setup.py
+
+For Linux, the commands to do so are as follows:
+
+.. code-block:: bash
+
+ # Mac and Linux
+ $ cd ~
+ $ mkdir -p projects/quick_tutorial
+ $ cd projects/quick_tutorial
+
+For Windows:
+
+.. code-block:: doscon
+
+ # Windows
+ c:\> cd \
+ c:\> mkdir projects\quick_tutorial
+ c:\> cd projects\quick_tutorial
+
+In the above figure, your user home directory is represented by ``~``. In your
+home directory, all of your projects are in the ``projects`` directory. This is
+a general convention not specific to Pyramid that many developers use. Windows
+users will do well to use ``c:\`` as the location for ``projects`` in order to
+avoid spaces in any of the path names.
+
+Next within ``projects`` is your workspace directory, here named
+``quick_tutorial``. A workspace is a common term used by integrated
+development environments (IDE), like PyCharm and PyDev, where virtual
+environments, specific project files, and repositories are stored.
+
+
+.. _set-an-environment-variable:
+
+Set an environment variable
+---------------------------
+
+This tutorial will refer frequently to the location of the :term:`virtual
+environment`. We set an environment variable to save typing later.
+
+.. code-block:: bash
+
+ # Mac and Linux
+ $ export VENV=~/projects/quick_tutorial/env
+
+.. code-block:: doscon
+
+ # Windows
+ c:\> set VENV=c:\projects\quick_tutorial\env
+
+
+.. _create-a-virtual-environment:
+
+Create a virtual environment
+----------------------------
+
+``venv`` is a tool to create isolated Python 3 environments, each with its own
+Python binary and independent set of installed Python packages in its site
+directories. Let's create one, using the location we just specified in the
+environment variable.
+
+.. code-block:: bash
+
+ # Mac and Linux
+ $ python3 -m venv $VENV
+
+.. code-block:: doscon
+
+ # Windows
+ c:\> c:\Python35\python3 -m venv %VENV%
+
+.. seealso:: See also Python 3's :mod:`venv module <python:venv>` and Python
+ 2's `virtualenv <https://virtualenv.pypa.io/en/latest/>`_ package.
+
+
+Update packaging tools in the virtual environment
+-------------------------------------------------
+
+It's always a good idea to update to the very latest version of packaging tools
+because the installed Python bundles only the version that was available at the
+time of its release.
+
+.. code-block:: bash
+
+ # Mac and Linux
+ $VENV/bin/pip install --upgrade pip setuptools
+
+.. code-block:: doscon
+
+ # Windows
+ c:\> %VENV%\Scripts\pip install --upgrade pip setuptools
+
+
+.. _install-pyramid:
+
+Install Pyramid
+---------------
+
+We have our Python standard prerequisites out of the way. The Pyramid
+part is pretty easy.
+
+.. parsed-literal::
+
+ # Mac and Linux
+ $ $VENV/bin/pip install "pyramid==\ |release|\ "
+
+ # Windows
+ c:\\> %VENV%\\Scripts\\pip install "pyramid==\ |release|\ "
+
+Our Python virtual environment now has the Pyramid software available.
+
+You can optionally install some of the extra Python packages used in this
+tutorial.
+
+.. code-block:: bash
+
+ # Mac and Linux
+ $ $VENV/bin/pip install webtest pytest pytest-cov deform sqlalchemy \
+ pyramid_chameleon pyramid_debugtoolbar pyramid_jinja2 waitress \
+ pyramid_tm zope.sqlalchemy
+
+.. code-block:: doscon
+
+ # Windows
+ c:\> %VENV%\Scripts\pip install webtest deform sqlalchemy pyramid_chameleon pyramid_debugtoolbar pyramid_jinja2 waitress pyramid_tm zope.sqlalchemy