168 lines
5.1 KiB
Plaintext
168 lines
5.1 KiB
Plaintext
..
|
|
==============
|
|
Downloading
|
|
==============
|
|
|
|
.. _`PyPI project page`: http://pypi.python.org/pypi/py/
|
|
|
|
|
|
py.test/pylib compat/install info in a nutshell
|
|
===================================================
|
|
|
|
PyPI Pyckage name: "**py**", see `PyPI project page`_ for latest version
|
|
|
|
Installers: easy_install_ and pip_, setuptools_ or Distribute_
|
|
|
|
Pythons: 2.4, 2.5, 2.6, 3.0, 3.1, Jython-2.5.1, PyPy-1.1
|
|
|
|
Operating systems: Linux, Windows and OSX + probably many others
|
|
|
|
|
|
Best practise: install tool and dependencies virtually
|
|
===========================================================
|
|
|
|
It is recommended to work with virtual environments
|
|
(e.g. virtualenv_ or buildout_ based) and use easy_install_
|
|
(or pip_) for installing py.test/pylib and any dependencies
|
|
you need to run your tests. Local virtual Python environments
|
|
(as opposed to system-wide "global" environments) make for a more
|
|
reproducible and reliable test environment.
|
|
|
|
Note: as of November 2009 pytest/pylib 1.1 RPMs and DEB packages
|
|
are not available. If you want to easy_install the newest py.test
|
|
and pylib do everyone a favour and uninstall older versions
|
|
from the global system e.g. like this on Ubuntu::
|
|
|
|
sudo apt-get remove --purge python-codespeak-lib
|
|
|
|
.. _`virtualenv`: http://pypi.python.org/pypi/virtualenv
|
|
.. _`buildout`: http://www.buildout.org/
|
|
.. _pip: http://pypi.python.org/pypi/pip
|
|
.. _`easy_install`:
|
|
|
|
using easy_install (from setuptools or Distribute)
|
|
===================================================
|
|
|
|
Both `Distribute`_ and setuptools_ provide the ``easy_install``
|
|
installation tool. While setuptools should work ok with
|
|
Python2 interpreters, `Distribute`_ also works with Python3
|
|
and it avoids some issues on Windows. In both cases you
|
|
can open a command line window and then type::
|
|
|
|
easy_install -U py
|
|
|
|
to install the latest release of the py lib and py.test. The ``-U`` switch
|
|
will trigger an upgrade if you already have an older version installed.
|
|
|
|
If you now type::
|
|
|
|
py.test --version
|
|
|
|
you should see the version number and the import location of the tool.
|
|
Maybe you want to head on with the `quickstart`_ now?
|
|
|
|
.. _quickstart: test/quickstart.html
|
|
|
|
Troubleshooting
|
|
========================
|
|
|
|
**On Linux**: If ``easy_install`` fails because it needs to run
|
|
as the superuser you are trying to install things globally
|
|
and need to put ``sudo`` in front of the command.
|
|
|
|
**On Windows**: If "easy_install" or "py.test" are not found
|
|
please see here: `How do i run a Python program under Windows?`_
|
|
|
|
.. _`How do i run a Python program under Windows?`: http://www.python.org/doc/faq/windows/#how-do-i-run-a-python-program-under-windows
|
|
|
|
.. _mercurial: http://mercurial.selenic.com/wiki/
|
|
.. _`Distribute`:
|
|
.. _`Distribute for installation`: http://pypi.python.org/pypi/distribute#installation-instructions
|
|
.. _`distribute installation`: http://pypi.python.org/pypi/distribute
|
|
.. _checkout:
|
|
.. _tarball:
|
|
|
|
Working from version control or a tarball
|
|
=================================================
|
|
|
|
To follow development or start experiments, checkout the
|
|
complete code and documentation source with mercurial_::
|
|
|
|
hg clone https://bitbucket.org/hpk42/py-trunk/
|
|
|
|
Development takes place on the 'trunk' branch.
|
|
|
|
You can also go to the python package index and
|
|
download and unpack a TAR file::
|
|
|
|
http://pypi.python.org/pypi/py/
|
|
|
|
|
|
activating a checkout with setuptools
|
|
--------------------------------------------
|
|
|
|
With a working `Distribute`_ or setuptools_ installation you can type::
|
|
|
|
python setup.py develop
|
|
|
|
in order to work inline with the tools and the lib of your checkout.
|
|
|
|
.. _`no-setuptools`:
|
|
|
|
.. _`directly use a checkout`:
|
|
|
|
directly use a checkout or tarball
|
|
-------------------------------------------------------------
|
|
|
|
Once you got yourself a checkout_ or tarball_ it is usually a good
|
|
idea to add the parent directory of the ``py`` package directory
|
|
to your ``PYTHONPATH`` and ``py/bin`` or ``py\bin\win32`` to your
|
|
system wide ``PATH`` settings. There are helper scripts that
|
|
set ``PYTHONPATH`` and ``PATH`` on your system:
|
|
|
|
on windows execute::
|
|
|
|
# inside autoexec.bat or shell startup
|
|
c:\\path\to\checkout\bin\env.cmd
|
|
|
|
on linux/OSX add this to your shell initialization::
|
|
|
|
# inside .bashrc
|
|
eval `python ~/path/to/checkout/bin/env.py`
|
|
|
|
both of which which will get you good settings
|
|
for ``PYTHONPATH`` and ``PATH``.
|
|
|
|
If you install ``py.test`` this way you can easily
|
|
``hg pull && hg up`` your checkout to follow the
|
|
development tree.
|
|
|
|
note: scripts look for "nearby" py-lib
|
|
-----------------------------------------------------
|
|
|
|
Note that all `command line scripts`_ will look
|
|
for "nearby" py libs, so if you have a layout like this::
|
|
|
|
mypkg/
|
|
subpkg1/
|
|
tests/
|
|
tests/
|
|
py/
|
|
|
|
issuing ``py.test subpkg1`` will use the py lib
|
|
from that projects root directory. Giving the
|
|
state of Python packaging there can be confusion
|
|
in which case issuing::
|
|
|
|
py.test --version
|
|
|
|
tells you both version and import location of the tool.
|
|
|
|
.. _`command line scripts`: bin.html
|
|
.. _contact: contact.html
|
|
|
|
.. _`RPM`: http://translate.sourceforge.net/releases/testing/fedora/pylib-0.9.2-1.fc9.noarch.rpm
|
|
|
|
.. _`setuptools`: http://pypi.python.org/pypi/setuptools
|
|
|