Table of Contents
Compiling Spyder (Python IDE)
Spyder is a matlab-like IDE for scientific computing. Following assumes that numpy and scipy is already installed in your python. I compiled spyder in both windows (32bit) and OSX machine (64bit) and both worked well. Below is compiling procedure for Windows. There are bundled packages available as well. See notes at the end of this page for the reason I set them up by myself.
Install Qt (binary)
Download binary (“library” version) from Nokia site and install Qt. I used “Qt libraries 4.7.3 for Windows (minGW 4.4, 319 MB)”.
mingW binary was chosen since I had many troubles before with VC compiled python modules. Since compiler is better be always same, I use mingW.
Important: After installation, set Path to Qt. Path to the c:\Qt\4.3.7\bin should be at the very front of all the other application bin path. These days, there are so many applications that comes with QtCore4.dll and if these are in front of installed Qt directory, then the wrong one is recognized.
Install SIP (source).
After installing Qt, use Qt-command prompt (you will see it under menu tree start - programs - Qt by Nokia… ) for installing SIP and PyQt. Much less problem occurs by using this Qt specific command prompt.
Download source from Riverbank, compile and install by
python config.py -p win32-g++ mingw32-make mingw32-make install
Install PyQt (source)
Also using Qt command prompt.
Download Source from Riverbank and compile & install by
python config.py -w mingw32-make mingw32-make install
Check if PYQT is installed correctly: run script below.
import sys from PyQt4.QtGui import * app = QApplication(sys.argv) button = QPushButton("Hello World", None) button.show() app.exec_()
Note: I had to clean system environmental path before making the PyQt to work. Specifically, I deleted c:\python26\lib\site-packages\pyQt\bin from the Path, which I added a year ago when I first installed PyQt. This old installation was working, but had some problems with addressing the location of PyQt binaries. In the end, I had to move all the libraries under PyQt\bin to PyQt root (many people suggested so and indeed it worked, though awkward)
Install Optional Modules
There is a list of recommended (though optional) modules in Spyder site. I installed them all using easy_install.
- pyReadline (this module is not in the list, but was recommended after installing Spyder showing up in its console)
I already had numpy, scipy, matplotlib, sphinx & Ipython installed. I only updated numpy using superpackage.
Compile Spyder: preparation
Some changes are required for PIL module being easy-to-be namespace conflicted in some imports. Error occurred during python setup.py install of Spyder in some modules due to way PIL module is imported. For example, import Image is not specific because there are other python file with name Image.py in module other than PIL. Then import fails.
Change follwoing codes:
1. C:\Python26\Lib\site-packages\scipy\misc\pilutil.py line 10:
#import Image from PIL import Image2. C:\Python26\lib\site-packages\docutils-0.7-py2.6.egg\docutils\parsers\rst\directives\images.py
line 19 -
#try: # import Image as PIL # PIL #except ImportError: # PIL = None # patched according to http://d.hatena.ne.jp/kk6/20110302 try: import PIL except ImportError: try: import Image as PIL # PIL except ImportError: PIL = None
patched according to http://d.hatena.ne.jp/kk6/20110302
Note: The problem I encountered is “AccessInit: hash collision: 3 for both 1 and 1” error, related to the name space conflict coming from PIL package. For this error, refer to here or here. Afterward, I found more up-to-date fork of PIL (PIL has not been developed for pretty long time) called "Pillow". I might have tried using it if I knew before, but since current setup is working, I might try later when I encounter other problems.
Download source and
python setup.py install
- I especially wanted to compile PyQt by myself, since this is a key module that needs to be under a good control. Many modules use PyQt, and compiling this locally using mingw was my major aim of taking extra time.
- If you want to install in windows, one could also use "Python(x,y)", a distribution of python pre-packaged with scientific computing modules, also including spyder. I did not do this because I already had some modules in my desktop, and also did not want to be restricted for upgrading using source. I installed python(x,y) in my personal laptop (xp, 32-bit) and working well.
- |Enthought package (free for academic use) is another option that includes everything. For the same reason as Python(x,y), I avoided using prepackaged bundle.
- Also on windows, there is a great site distributing modules as binary .exe. SeeChristoph Gohlke's site. I installed VTK5 and mayavi2 using his binary (mingw compiled).