Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 48787808f0aa8c66c98ca8aead901311 > files > 83

pyblosxom-1.4.3-2mdv2010.0.noarch.rpm

===============================
Installing PyBlosxom with Paste
===============================

:Author: PyBlosxom Development Team
:Version: $Id: advanced_installation.txt 1029 2007-06-07 02:33:12Z willhelm $
:Copyright: This document is distributed under the MIT license.

.. contents::


Summary
=======

As of PyBlosxom 1.4, we have support for Paste.  This document covers
installing and using PyBlosxom with Paste.

This document is in a "works for me" status.  Any help to flesh it out
to be more generally useful is **greatly** appreciated.

This installation assumes you have some understanding of Python Paste.
If this doesn't sound like you, then you can read up on Paste on
the `Paste web-site`_.

Paste support is pretty new, still.  If you have problems, check our
`web-site`_ and feel free to ask questions on the pyblosxom-users
mailing list.  Details of the mailing list are on our web-site on the
`Contact us`_ page.

.. _Paste web-site: http://pythonpaste.org/
.. _web-site: http://pyblosxom.sourceforge.net/
.. _Contact us: http://pyblosxom.sourceforge.net/blog/static/contact

.. Note::

   A note about upgrading PyBlosxom:
    
   If you are upgrading your version of PyBlosxom, follow the
   instructions here and also read the ``README`` that comes with
   your PyBlosxom tarball for differences between this version and
   the previous versions.  The ``README`` file contains instructions
   on updating your ``config.py`` file, templates, and other parts of
   your PyBlosxom installation which you will have to do by hand.


Pre-requisites for installing PyBlosxom with Paste
==================================================

You will need:

* Pyblosxom 1.4 or a later version
* Python Paste which can be found at http://pythonpaste.org/

Additionally, if you're using an earlier version of Python than
Python 2.5, then you'll also need:

* wsgiref library from http://svn.eby-sarna.com/wsgiref/

Additionally, if you are running PyBlosxom on Windows, you will
also need:

* Python for Windows extensions: http://sourceforge.net/projects/pywin32/


Downloading
===========

You can find versions of PyBlosxom by going to the Download link at
http://pyblosxom.sourceforge.net/ .

Download the latest PyBlosxom ``.tar.gz`` file.


Installation
============

Installing PyBlosxom with Paste should take 5-10 minutes depending
on what state your system is currently in.  The installation consists
of a few steps.  Tweaking, styling, and adding content to your blog
is covered in other parts of the documentation.


1. Download PyBlosxom from the PyBlosxom site.

2. Untar PyBlosxom::

      tar -xzvf pyblosxom*.tar.gz

3. Either:

   3.1. install PyBlosxom as a Python library by doing 
        ``python setup.py install``, OR
   3.2. add ``PYTHONPATH=/path/to/Pyblosxom/parent/`` to your
        environment variables

4. Create a directory to hold your blog.  This will be a parent directory
   of your ``datadir``.  Also create directories for ``entries``, 
   ``flavours``, and ``plugins``.

   Here's an example file-system layout::

      /home/joe/
         |- blog/
            |- entries/
            |- flavours/
            |- plugins/
            |- config.py
            |- blog.ini


5. Copy ``blog.ini`` from ``pyblosxom/web`` into your blog directory.

6. Copy ``config.py`` from ``pyblosxom/web`` into your blog directory.

7. Edit ``blog.ini`` and ``config.py`` -- see instructions in configuration 
   section.  Be sure to set the ``configpydir`` property.

8. If you left ``use``, ``host``, and ``port`` at the defaults, then you
   can run your blog like this::

      paster serve blog.ini


   ``paster`` will print the URL for your blog on the command line.

   .. Note::

      If the host of your blog is ``0.0.0.0`` or ``127.0.0.1``, then 
      your blog will be visible ONLY from the same machine it is running
      from.


Configuration
=============

Paste configuration is done in an ``.ini`` file.

Create a ``blog.ini`` that holds information that Paste needs to
run your blog.

An example ``blog.ini`` is here::

   [DEFAULT]
   debug = True

   [server:main]
   use = egg:Paste#http
   host = 0.0.0.0
   port = 5000

   [app:main]
   paste.app_factory = Pyblosxom.pyblosxom:pyblosxom_app_factory
   configpydir = /path/to/dir

   # PyBlosxom config here
   blog_title = Joe's Blog
   blog_description = This is Joe's test blog.
   blog_author = Joe
   blog_email = joe@example.com
   datadir = /home/joe/blog/entries/
   num_entries = 5


There are several things to note here:

1. In the ``[server:main]`` section, define the ``host`` and ``port``
   of your blog.  Using ``0.0.0.0`` and ``5000`` is really useful
   for building a test environment that only someone on the machine
   the blog is running on can see.  When you want to make your blog
   public, you can set the host to your ip address and the port to
   something more reasonable.

   There's more information on configuring Paste on the `Paste Deployment`_
   site.

   .. _Paste Deployment: http://pythonpaste.org/deploy/

2. The ``[app:main]`` section needs to have the ``paste.app_factory``
   defined--this tells Paste where the PyBlosxom WSGI app factory
   function is.  

3. Define the ``configpydir`` property in the ``[app:main]`` section.
   The value of this property is the directory that your ``config.py``
   file is in.  

   For example, if you put your ``config.py`` file in 
   ``/home/joe/blog/config.py``, then set your ``configpydir`` like
   this::

      configpydir = /home/joe/blog/

4. You can define PyBlosxom config properties in the ``[app:main]`` 
   section as well.  Properties declared here will **override**
   properties declared in your ``config.py`` file.  This is really
   handy for building a testing environment blog on a different port.

   You don't have to define any config properties in the ``blog.ini``
   file--you can define them all in your ``config.py`` file.

   .. Note::

      Defining PyBlosxom config properties in an .ini file is a bit
      of a trick since .ini files treat all keys and values as
      strings but not all config properties have string values.


Trouble-shooting
================

Import Error: No module named Pyblosxom.pyblosxom
-------------------------------------------------

If you installed PyBlosxom as a Python library (i.e. you did
``python setup.py install``), then the problem is probably that
you have multiple versions of Python on your system and paster
is using a different one than the one you install PyBlosxom into.

Run::

   paster --version

and see if that matches the version of Python you installed PyBlosxom
into.  If it doesn't match, then you need to install PyBlosxom into
the version of Python that paster is using.

If you didn't install PyBlosxom as a Python library, then you need
to add the directory that the PyBlosxom code is in to the Python
sys.path.  The easiest way to do that is to set the ``PYTHONPATH``
environment variable to the directory that PyBlosxom is in.

For example, I untarred PyBlosxom into ``/home/joe/`` and I have
a directory tree like this::

   /home/joe/
         |- pyblosxom/
            |- Pyblosxom/
               |- ...


I then set ``PYTHONPATH`` like this::

   % export PYTHONPATH=${PYTHONPATH}:/home/joe/pyblosxom/