Issue 26004: pip install lifetimes - throwing error and unable to install packages (original) (raw)

Since you're on Python 3.5, you'll need Visual Studio 2015 to build extensions.

However, since the extension in question is numpy, you'll need to find prebuilt binaries since you won't be able to compile it yourself just yet. I believe Continuum has builds for 3.5 in Anaconda now.

You can build NumPy with only a C compiler, but it won't have accelerated BLAS/LAPACK. However, lifetimes requires SciPy, which in turn requires Fortran. This is a common requirement with a lot of the scientific-computing stack, so you may as well choose a complete solution such as Anaconda.

That said, if you just need a few packages, then Christoph Gohlke provides an extensive collection of wheels 1. For example, I have a directory with the following wheels downloaded from Christoph's site:

C:\>dir /b Z:\Python\wheel
matplotlib-1.5.0-cp35-none-win_amd64.whl
numpy-1.10.2+mkl-cp35-none-win_amd64.whl
pandas-0.17.1-cp35-none-win_amd64.whl
scipy-0.16.1-cp35-none-win_amd64.whl

I'll test installing lifetimes and matplotlib in a virtual environment:

C:\>py -3 -m venv --symlinks C:\Temp\env35
C:\>C:\Temp\env35\Scripts\activate.bat

The command-line option "-f directory" makes pip look for packages in a local directory:

(env35) C:\>pip install -f Z:\Python\wheel lifetimes matplotlib
Collecting lifetimes
  Using cached Lifetimes-0.1.6.3.tar.gz
Collecting matplotlib
Collecting numpy (from lifetimes)
Collecting scipy (from lifetimes)
Collecting pandas>=0.14 (from lifetimes)
Collecting pyparsing!=2.0.4,>=1.5.6 (from matplotlib)
  Downloading pyparsing-2.0.7-py2.py3-none-any.whl
Collecting pytz (from matplotlib)
  Using cached pytz-2015.7-py2.py3-none-any.whl
Collecting python-dateutil (from matplotlib)
  Using cached python_dateutil-2.4.2-py2.py3-none-any.whl
Collecting cycler (from matplotlib)
  Downloading cycler-0.9.0-py2.py3-none-any.whl
Collecting six>=1.5 (from python-dateutil->matplotlib)
  Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: numpy, scipy, six, python-dateutil,
    pytz, pandas, lifetimes, pyparsing, cycler, matplotlib
  Running setup.py install for lifetimes
Successfully installed cycler-0.9.0 lifetimes-0.1.6.3
    matplotlib-1.5.0 numpy-1.10.2 pandas-0.17.1 pyparsing-2.0.7
    python-dateutil-2.4.2 pytz-2015.7 scipy-0.16.1 six-1.10.0