This document is still a scratch
You’ll want a directory to do this in so that you don’t screw up your machine. Here’s what I did:
$ cd ~/
$ mkdir -p Envs/Python && cd Envs/Python
$ export DEPLOY=$PWD
That last bit is so you can refer to this deployment directory with $DEPLOY
(which I’ll be using in the instructions from now on).
You’ll probably want to get 2.7 for your deployment, let's download the source code first:
$ cd /tmp
$ wget http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz
Type this command to automatically install some dependences:
$ sudo apt-get build-dep python2.7
Make sure you bring in other -dev packages that are listed in follow:
- python-dev
- libncurses5-dev
- libsqlite3-dev
- libbz2-dev
- libreadline-dev
- libdb4.8-dev
- tcl8.5-dev,tk8.5-dev
These packages are not shipped in early ubuntu versions (like 10.04), do a check to make sure:
- libssl-dev
- libexpat1-dev
- libreadline6-dev
- libgtk2.0-dev
For lxml
if you want to install it later:
- libxml2-dev
- libxslt1-dev
For MySQLdb
(which is acturally named MySQL-python in pypi) if you want to install it later
- libmysqlclient-dev
The final result of ./configure --prefix=$DEPLOY
may looks like follows: :
Python build finished, but the necessary bits to build these modules were not found:
_tkinter bsddb185 dl
gdbm imageop sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
It will show you the modules that can not be build, note that some of them are unnecessary or deprecated:
- bsddb185: Older version of Oracle Berkeley DB. Undocumented. Install version 4.8 instead.
- dl: For 32-bit machines. Deprecated. Use ctypes instead.
- imageop: For 32-bit machines. Deprecated. Use PIL instead.
- sunaudiodev: For Sun hardware. Deprecated.
- _tkinter: For tkinter graphy library, unnecessary if you don't develop tkinter programs.
$ tar -xvf Python-2.7.4.tgz
$ cd Python-2.7.4
$ ./configure —prefix=$DEPLOY
$ make
$ make install
After this you will have a bunch of new directories in $DEPLOY:
$ ls $DEPLOY
bin include lib share source
Let's make a test by put this new bin directory into your $PATH:
$ export PATH=$DEPLOY/bin:$PATH
then you just try it out to make sure that you have the right one:
$ which python
$DEPLOY/deploy/bin/python
$ python
Python 2.7.4 (default, Nov 27 2012, 22:30:50)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Operating system fanatics will scoff at putting the python install in this directory, so if you want you can just install it to the default /usr/local on your system and deal with all the various clashes and conflicts you’ll have, especially if you are on an MacOSX machine.
http://www.virtualenv.org/en/latest/
http://virtualenvwrapper.readthedocs.org/en/latest/
Now we need to create a “virtual environment” to install all your software. To do this we’ll need easy_install installed to your $DEPLOY directory:
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea
sh setuptools-0.6c11-py2.7.egg
...
or (the latest):
wget https://bitbucket.org/pypa/setuptools/raw/0.8/ez_setup.py -O - | python
Note:
if path in output information is not match with $DEPLOY, add
--prefix=$DEPLOY
after the command
Install pip
:
easy_install pip
As you can see, you now have a clean install of easy_install in your fresh $DEPLOY/bin directory for you to use. Now you need to install virtualenv:
$ pip install virtualenv
$ which virtualenv
$DEPLOY/bin/virtualenv
Make sure you use --prefix $DEPLOY above or you’ll install things into the default system setup even though easy_install is clearly and obviously running from a Python in a totally different location so easy_install should know that.
$ pip install virtualenvwrapper
if you follow the step of kubuntu_deployment_for_pc.rst the installaion is done.
if not, you should add some configurations in shell environment, paste the following code to your .zshrc
or .bashrc
:
export PYTHONENV=$HOME/Envs/Python
export PYTHONSTARTUP=$HOME/.pystartup
# for virtualenvwrapper
export VIRTUALENVWRAPPER_PYTHON=$PYTHONENV/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=$PYTHONENV/bin/virtualenv
export WORKON_HOME=$PYTHONENV/virtualenvs
export PROJECT_HOME=$HOME/workspace/current
source $PYTHONENV/bin/virtualenvwrapper.sh
restart your shell, now following commands are avaliable, test arould:
$ mkvirtualenv TORNADO
$ pip install tornado
$ cdsitepackages
These tools should work under system python environment, so let's make easy_install and pip available in normal situation:
$ sudo sh setuptools-0.6c11-py2.7.egg
$ sudo easy_install pip
ipython
ipython is a full-stack python shell, for a quick install you can just:
$ sudo apt-get install ipython ipython-notebook ipython-qtconsole
bpython
autopep8
flake8
pip-tools
http://www.kelvinwong.ca/2010/08/02/python-2-7-on-dreamhost/
Thanks, saved me a lot of time on the starting steps.