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/