views:

3277

answers:

8

How do I install SciPy on my system?

Update 1: for the NumPy part (that SciPy depends on) there is actually an installer for 64 bit Windows: numpy-1.3.0.win-amd64-py2.6.msi (is direct download URL, 2310144 bytes).

Running the SciPy superpack installer results in this message in a dialog box:

"Cannot install. Python version 2.6 required, which was not found in the registry."

I already have Python 2.6.2 installed (and a working Django installation in it), but I don't know about any Registry story.

The registry entries seems to already exist:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Python]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Help\Main Python Documentation]
@="D:\\Python262\\Doc\\python262.chm"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath]
@="D:\\Python262\\"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\InstallPath\InstallGroup]
@="Python 2.6"

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\Modules]

[HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\PythonPath]
@="D:\\Python262\\Lib;D:\\Python262\\DLLs;D:\\Python262\\Lib\\lib-tk"


What I have done so far:

Step 1

Downloaded the NumPy superpack installer numpy-1.3.0rc2-win32-superpack-python2.6.exe (direct download URL, 4782592 bytes). Running this installer resulted in the same message, "Cannot install. Python version 2.6 required, which was not found in the registry.". Update: there is actually an installer for NumPy that works - see beginning of the question.

Step 2

Tried to install NumPy in another way. Downloaded the zip package numpy-1.3.0rc2.zip (direct download URL, 2404011 bytes), extracted the zip file in a normal way to a temporary directory, D:\temp7\numpy-1.3.0rc2 (where setup.py and README.txt is). I then opened a command line window and:

d:
cd D:\temp7\numpy-1.3.0rc2
setup.py install

This ran for a long time and also included use of cl.exe (part of Visual Studio). Here is a nearly 5000 lines long transcript (230 KB).

This seemed to work. I can now do this in Python:

import numpy as np
np.random.random(10)

with this result:

array([ 0.35667511,  0.56099423,  0.38423629,  0.09733172,  0.81560421,
        0.18813222,  0.10566666,  0.84968066,  0.79472597,  0.30997724])

Step 3

Downloaded the SciPy superpack installer, scipy-0.7.1rc3- win32-superpack-python2.6.exe (direct download URL, 45597175 bytes). Running this installer resulted in the message listed in the beginning

Step 4

Tried to install SciPy in another way. Downloaded the zip package scipy-0.7.1rc3.zip (direct download URL, 5506562 bytes), extracted the zip file in a normal way to a temporary directory, D:\temp7\scipy-0.7.1 (where setup.py and README.txt is). I then opened a command line window and:

d:
cd D:\temp7\scipy-0.7.1
setup.py install

This did not achieve much - here is a transcript (about 95 lines).

And it fails:

>>> import scipy as sp2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named scipy


Platform: Python 2.6.2 installed in directory D:\Python262, Windows XP 64 bit SP2, 8 GB RAM, Visual Studio 2008 Professional Edition installed.

The startup screen of the installed Python is:

Python 2.6.2 (r262:71605, Apr 14 2009, 22:46:50) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

Value of PATH, result from SET in a command line window:

Path=D:\Perl64\site\bin;D:\Perl64\bin;C:\Program Files (x86)\PC Connectivity Solution\;D:\Perl\site\bin;D:\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;d:\Program Files (x86)\WinSCP\;D:\MassLynx\;D:\Program Files (x86)\Analyst\bin;d:\Python262;d:\Python262\Scripts;D:\Program Files (x86)\TortoiseSVN\bin;D:\Program Files\TortoiseSVN\bin;C:\WINDOWS\system32\WindowsPowerShell\v1.0;D:\Program Files (x86)\IDM Computer Solutions\UltraEdit\
+1  A: 

Try to install Python 2.6.3 over your 2.6.2 (this should also add correct Registry entry), or to register your existing installation using this script. Installer should work after that.

Building SciPy requires a Fortran compiler and libraries - BLAS and LAPACK.

PiotrLegnica
When I run Fredrik Lundh's script I get: "*** Unable to register! *** You probably have another Python installation!". I have updated the question with registry entries on my system. (Some of the variables are: pythonpath: 'd:\\Python262;d:\\Python262\\Lib\\;d:\\Python262\\DLLs\\', regpath: 'SOFTWARE\\Python\\Pythoncore\\2.6\\').
Peter Mortensen
If `HKEY_LOCAL_MACHINE\SOFTWARE\Python\PythonCore\2.6\` exists, then try to remove it and run it again. Also - do you run it with enough privileges?
PiotrLegnica
I tried it and got: "--- Python 2.6 is now registered!". However with the same result when running scipy-0.7.1rc3-win32-superpack-python2.6.exe. Is it expected to work on a 64 bit version of Python? (And yes, I have far too many privileges :-) (administrator). I know I shouldn't for security reasons.)
Peter Mortensen
+4  A: 

As the transcript for SciPy told you, SciPy isn't really supposed to work on Win64:

Warning: Windows 64 bits support is experimental, and only available for
testing. You are advised not to use it for production.

So I would suggest to install the 32-bit version of Python, and stop attempting to build SciPy yourself. If you still want to try anyway, you first need to compile BLAS and LAPACK, as PiotrLegnica says. See the transcript for the places where it was looking for compiled versions of these libraries.

Martin v. Löwis
+1  A: 

I haven't tried it, but you may want to download this version of Portable Python. It comes with Scipy-0.7.0b1 running on Python 2.5.4.

proportional
Thanks! It works great and is by far the easiest way to get it working (although it is a 32 bit version and thus not a 64 bit version of SciPy). And it doesn't mess with the existing 64 bit version installation of Python.
Peter Mortensen
+8  A: 

Short answer: windows 64 support is still work in progress at this time. The superpack will certainly not work on a 64 bits python (but it should work fine on a 32 bits python, even on windows 64).

The main issue with windows 64 is that building with mingw-w64 is not stable at this point: it may be our's (numpy devs) fault, python's fault or mingw-w64. Most likely a combination of all those :). So you have to use proprietary compilers: anything other than MS compiler crashes numpy randomly; for the fortran compiler, ifort is the one to use. As of today, both numpy and scipy source code can be compiled with VS 2008 and ifort (all tests passing), but building it is still quite a pain, and not well supported by numpy build infrastructure.

David Cournapeau
Thanks for the good explanation of the issues.
Peter Mortensen
Any idea when it will be ready?
endolith
Enthought provides 64 bits build of EPD, which is free to use for academic usage (they supported the win64 port), and uses the MKL for speed. There is also another unofficial set of binaries, linked below
David Cournapeau
Is 64 bit available for academic use? It would be great - from the website it looks like only 32bit is freely available.
thrope
+4  A: 

Unofficial 64-bit installers for numpy and scipy are available at http://www.lfd.uci.edu/~gohlke/pythonlibs/

cgohlke
This seems to be working for me!
endolith
+1  A: 

For completeness: Enthought has a Python distribution which includes SciPy; however, it's not free. Caveat: I've never used it.

GreenMatt
+1  A: 

Another alternative: http://www.pythonxy.com/

Free and includes lots of stuff meant to work together smoothly.

endolith
+1  A: 

I was getting this same error on a 32-bit machine. I fixed it by registering my python install, using the script at:

http://effbot.org/zone/python-register.htm

It's possible that the script would also make the 64-bit superpack installers work.

Edward Loper