AppEngine is still stuck on python2.5, but recent Ubuntu distros don't even have the python2.5 package available anymore, which makes getting AppEngine up and running a bit cumbersome. There is a third-party package available, but I like knowing the contents of what I'm installing. Here are the steps to install python2.5 on Ubuntu 10.10 without overwriting the existing python installation. This worked for me, but no guarantees it will work on your system. It's a good idea to try it first in a virtual machine to make sure it'll work. You can install VMWare Player for free from http://www.vmware.com.
This is mostly based on http://code.google.com/p/googleappengine/issues/detail?id=757#c51, but fixes some problems in that post.
1. Install some necessary libraries:
2. Install the latest openssl from http://www.openssl.org/. Just click on the "Source" tab, and then get the LATEST. Currently this is http://www.openssl.org/source/openssl-1.0.0a.tar.gz. Save it as a file rather than opening with the Archive Manager.
Then:
This installs stuff at /usr/local/ssl/ (header files, etc).
3. Install the latest sqlite from http://sqlite.org/. Currently, this is http://sqlite.org/sqlite-amalgamation-3.7.3.tar.gz.
4. Install python2.5 from source. Download at http://www.python.org/download/releases/2.5.5/.
Change Modules/Setup.dist: (just need to uncomment the following lines: 202, 206-209). It should look like this afterwards:
Then, you need to copy this setup file and do the install:
> make
> sudo make altinstall
The altinstall (instead of plain "install") is important, because it will install it alongside the existing python distro (currently 2.6) instead of overwriting it. This means that when you run python, it will run 2.6, but you can explicitly use 2.5 by running python2.5.
5. Install Python Imaging Library. Download from http://www.pythonware.com/products/pil/. Latest version is currently at http://effbot.org/downloads/Imaging-1.1.7.tar.gz.
6. Finally, download and install Google AppEngine Python SDK from http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Python.
Your system should now look like this:
And when you run dev_appserver.py, explicitly start it via python2.5, like:
> python2.5 google_appengine/dev_appserver.py helloworld/
Alternatively, you can change the first line of dev_appserver.py to read:
#!/usr/bin/env python2.5
instead of
#!/usr/bin/env python
You should now be able to run the entire Hello World python app described in the Getting Started tutorial at http://code.google.com/appengine/docs/python/gettingstarted/.
Enjoy!
Update: (May 13, 2012): Apparently there's an updated version here. I haven't checked it yet, but good luck! http://terse-words.blogspot.co.uk/2012/05/install-google-app-engine-on-ubuntu.html
This is mostly based on http://code.google.com/p/googleappengine/issues/detail?id=757#c51, but fixes some problems in that post.
1. Install some necessary libraries:
> sudo apt-get install libssl-dev
> sudo apt-get install libjpeg62-dev
> sudo apt-get install libfreetype6-dev
> sudo apt-get install libsqlite3-dev
> sudo apt-get install libjpeg62-dev
> sudo apt-get install libfreetype6-dev
> sudo apt-get install libsqlite3-dev
2. Install the latest openssl from http://www.openssl.org/. Just click on the "Source" tab, and then get the LATEST. Currently this is http://www.openssl.org/source/openssl-1.0.0a.tar.gz. Save it as a file rather than opening with the Archive Manager.
Then:
> tar -xzvf openssl-1.0.0.a.tar.gz
> cd openssl-1.0.0.a
> ./config
> make
> sudo make install
> cd openssl-1.0.0.a
> ./config
> make
> sudo make install
This installs stuff at /usr/local/ssl/ (header files, etc).
3. Install the latest sqlite from http://sqlite.org/. Currently, this is http://sqlite.org/sqlite-amalgamation-3.7.3.tar.gz.
> tar -xzvf sqlite-amalgamation-3.7.3.tar.gz
> cd sqlite-3.7.3
> ./configure
> make
> sudo make install
> cd sqlite-3.7.3
> ./configure
> make
> sudo make install
4. Install python2.5 from source. Download at http://www.python.org/download/releases/2.5.5/.
> tar -xzvf Python-2.5.5.tgz
> cd Python-2.5.5
> cd Python-2.5.5
Change Modules/Setup.dist: (just need to uncomment the following lines: 202, 206-209). It should look like this afterwards:
202: _socket socketmodule.c
203:
204: # Socket module helper for SSL support; ...
205: # socket line above, ...
206: SSL=/usr/local/ssl
207: _ssl _ssl.c \
208: -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
209: -L$(SSL)/lib -lssl -lcrypto
203:
204: # Socket module helper for SSL support; ...
205: # socket line above, ...
206: SSL=/usr/local/ssl
207: _ssl _ssl.c \
208: -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
209: -L$(SSL)/lib -lssl -lcrypto
Then, you need to copy this setup file and do the install:
> cp Modules/Setup.dist Modules/Setup
> ./configure > make
> sudo make altinstall
The altinstall (instead of plain "install") is important, because it will install it alongside the existing python distro (currently 2.6) instead of overwriting it. This means that when you run python, it will run 2.6, but you can explicitly use 2.5 by running python2.5.
5. Install Python Imaging Library. Download from http://www.pythonware.com/products/pil/. Latest version is currently at http://effbot.org/downloads/Imaging-1.1.7.tar.gz.
> tar -xzvf Imaging-1.1.7.tar.gz
> cd Imaging-1.1.7
> sudo python2.5 setup.py install
> cd Imaging-1.1.7
> sudo python2.5 setup.py install
6. Finally, download and install Google AppEngine Python SDK from http://code.google.com/appengine/downloads.html#Google_App_Engine_SDK_for_Python.
Your system should now look like this:
> python --version
Python 2.6.6
> python2.5 --version
Python 2.5.5
Python 2.6.6
> python2.5 --version
Python 2.5.5
And when you run dev_appserver.py, explicitly start it via python2.5, like:
> python2.5 google_appengine/dev_appserver.py helloworld/
Alternatively, you can change the first line of dev_appserver.py to read:
#!/usr/bin/env python2.5
instead of
#!/usr/bin/env python
You should now be able to run the entire Hello World python app described in the Getting Started tutorial at http://code.google.com/appengine/docs/python/gettingstarted/.
Enjoy!
Update: (May 13, 2012): Apparently there's an updated version here. I haven't checked it yet, but good luck! http://terse-words.blogspot.co.uk/2012/05/install-google-app-engine-on-ubuntu.html
HI Darren, was very happy to find this page, which is well laid out. Good info. So followed steps. Now I am getting the following error: Python2.5 google_appengine/dev_appserver.py helloworld/
ReplyDeleteSegmentation fault
Any ideas what this is about? How to fix it?
Or have I done something wrong??
MJ
Yes, one of the required libraries is probably not installed. Can you run "strace python2.5 google_appengine/dev_appserver.py helloworld/" and display the output? It should show you where exactly it is breaking.
ReplyDeleteSo I have run the same command using STRACE and in the output I can see the following:
ReplyDeleteaccess("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libcrypto.so.0.9.8", O_RDONLY) = 7
So I have looked in the etc library and that is indeed the case!
So I have found the following link
http://manpages.ubuntu.com/manpages/maverick/man8/ld.so.8.html
Then I downloaded and gunzipped ld.so.8.gz
So is that what I am supposed to use as the nowhcap file?
Not sure what I should do next? New to Ubuntu/Linux, etc. Can you please advise?
Thanks a mill
Seems like maybe openssl is not installed properly, since it's failing trying to access libcrypto.
ReplyDeleteThanks
ReplyDeleteThere's an up to date version here - http://terse-words.blogspot.co.uk/2012/05/install-google-app-engine-on-ubuntu.html
ReplyDelete