Wednesday, 2 January 2013

Install Stackless Python on Ubuntu

I'm just about to write a couple of posts on Stackless Python and the Nagare Micro Framework which runs on it. So I've been installing Stackless on my Ubuntu 12.04. Here are some nice copy and paste instructions if you want to play along.

First install the required libraries and get stackless itself:

sudo run apt-get update
sudo apt-get install libreadline-dev
sudo apt-get build-dep python2.7
cd /tmp
wget http://www.stackless.com/binaries/stackless-272-export.tar.bz2
bunzip2 stackless-272-export.tar.bz2
tar xf stackless-272-export.tar
view raw install.sh hosted with ❤ by GitHub

Now install stackless :

cd /tmp/stackless-272-export/
./configure --prefix=/opt/stackless --enable-unicode=ucs4
make
sudo make install
view raw bash.sh hosted with ❤ by GitHub

After the "make" you'll see some failures as below. Just ignore them.

Python build finished, but the necessary bits to build these modules were not found:
_bsddb bsddb185 dl
imageop linuxaudiodev ossaudiodev
sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_curses _curses_panel
view raw gistfile1.txt hosted with ❤ by GitHub

Now it's time to link your standard (CPython) packages so that they can be used with stackless:

sudo ln -s /usr/lib/python2.7/dist-packages/ /opt/stackless/lib/python2.7/site-packages
sudo ln -s /usr/local/lib/python2.7/dist-packages/ /opt/stackless/lib/python2.7/dist-packages
sudo ln -s /opt/stackless/bin/python /usr/bin/stackless
sudo vi /opt/stackless/lib/python2.7/site.py
view raw bash.sh hosted with ❤ by GitHub
...and edit the paths in the site.py file. At about line 300, edit the file to look like this. It's the second sitepackages.append bit we're adding here:

elif os.sep == '/':
sitepackages.append(os.path.join(prefix, "lib",
"python" + sys.version[:3],
"site-packages"))
sitepackages.append(os.path.join(prefix, "lib",
"python" + sys.version[:3],
"dist-packages"))
sitepackages.append(os.path.join(prefix, "lib", "site-python"))
view raw site.py hosted with ❤ by GitHub
That should be it! Let's test it:

$stackless
Python 2.7.2 Stackless 3.1b3 060516 (default, Jan 2 2013, 22:39:14)
[GCC 4.6.3] on linux3
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
view raw gistfile1.txt hosted with ❤ by GitHub

1 comment: