Downloading and Installation

Prerequisites

The lmfit package requires Python, Numpy, and Scipy.

Lmfit works with Python 2.7, 3.3, 3.4, and 3.5. Lmfit version 0.9.4 works with Python 2.6, but support for it will dropped in version 0.9.5. Scipy version 0.13 or higher is required, with 0.17 or higher recommended to be able to use the latest optimization features from scipy. Support for scipy 0.13 will be dropped in version 0.9.5. Numpy version 1.5 or higher is required.

In order to run the test suite, the nose framework is required. Some parts of lmfit will be able to make use of IPython (version 4 or higher), matplotlib, and pandas if those libraries are installed, but no core functionality of lmfit requires these.

Downloads

The latest stable version of lmfit is 0.9.4 is available from PyPi.

Installation

If you have pip installed, you can install lmfit with:

pip install lmfit

or you can download the source kit, unpack it and install with:

python setup.py install

For Anaconda Python, lmfit is not an official packages, but several Anaconda channels provide it, allowing installation with (for example):

conda install -c newville lmfit

Development Version

To get the latest development version, use:

git clone http://github.com/lmfit/lmfit-py.git

and install using:

python setup.py install

Testing

A battery of tests scripts that can be run with the nose testing framework is distributed with lmfit in the tests folder. These are routinely run on the development version. Running nosetests should run all of these tests to completion without errors or failures.

Many of the examples in this documentation are distributed with lmfit in the examples folder, and should also run for you. Many of these require

Acknowledgements

Many people have contributed to lmfit.

Matthew Newville wrote the original version and maintains the project.
Till Stensitzki wrote the improved estimates of confidence intervals, and
    contributed many tests, bug fixes, and documentation.
Daniel B. Allan wrote much of the high level Model code, and many
    improvements to the testing and documentation.
Antonino Ingargiola wrote much of the high level Model code and provided
    many bug fixes.
J. J. Helmus wrote the MINUT bounds for leastsq, originally in
    leastsqbounds.py, and ported to lmfit.
E. O. Le Bigot wrote the uncertainties package, a version of which is used
    by lmfit.
Michal Rawlik added plotting capabilities for Models.
A. R. J. Nelson added differential_evolution, emcee, and greatly improved the
    code in the docstrings.

Additional patches, bug fixes, and suggestions have come from Christoph
    Deil, Francois Boulogne, Thomas Caswell, Colin Brosseau, nmearl,
    Gustavo Pasquevich, Clemens Prescher, LiCode, and Ben Gamari.

The lmfit code obviously depends on, and owes a very large debt to the code
in scipy.optimize.  Several discussions on the scipy-user and lmfit mailing
lists have also led to improvements in this code.

License

The LMFIT-py code is distribution under the following license:

Copyright, Licensing, and Re-distribution
-----------------------------------------

The LMFIT-py code is distribution under the following license:

  Copyright (c) 2014 Matthew Newville, The University of Chicago
                     Till Stensitzki, Freie Universitat Berlin
                     Daniel B. Allen, Johns Hopkins University
                     Michal Rawlik, Eidgenossische Technische Hochschule, Zurich
                     Antonino Ingargiola, University of California, Los Angeles
                     A. R. J. Nelson, Australian Nuclear Science and Technology Organisation

  Permission to use and redistribute the source code or binary forms of this
  software and its documentation, with or without modification is hereby
  granted provided that the above notice of copyright, these terms of use,
  and the disclaimer of warranty below appear in the source code and
  documentation, and that none of the names of above institutions or
  authors appear in advertising or endorsement of works derived from this
  software without specific prior written permission from all parties.

  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  DEALINGS IN THIS SOFTWARE.

-----------------------------------------
Some code sections have been taken from the scipy library whose licence is below.

Copyright (c) 2001, 2002 Enthought, Inc.
All rights reserved.

Copyright (c) 2003-2016 SciPy Developers.
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of Enthought nor the names of the SciPy Developers
     may be used to endorse or promote products derived from this software
     without specific prior written permission.


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.