Installing Python 2.6 in CentOS 5 (or RHEL5)
2011-01-10 18:38
260 查看
CentOS 5 uses python 2.4, and replacing it is not really on
option since yum and other core packages depend on it. My solution is to
compile 2.6 and use /opt or /usr/local for the prefix. I also create a virtualenv
with the new python executable, so when I’m in the environment 2.6
becomes the default python. It also isolates all my python libraries for
a given project. Most of this article is actually distribution
agnostic, and the yum build requirement install will likely work on
other versions of CentOS and other RedHat derivatives like Fedora.
Run ./configure –help for more configure options.
If you plan to install multiple versions of python to the same
prefix, use “sudo make altinstall” instead of “make install” for the
versions you want installed as python2.6 etc, and “make install” for the
default version you want installed as simply python. See the README for
more details.
After running the make command you will see a list of modules that
were not built. If you installed all of the devel libraries listed
above, the only missing modules should be bsddb185 and sunaudiodev. You
probably don’t need these – bsddb185 is the old version of the berkely
db module, and sunaduiodev is for solaris. On x86_64 db and imageop may
also be in the list, but looking at the setup.py, it looks like this is
normal.
– get the egg if it’s available for your version of python, otherwise
get the tarball. In either case prepend PREFIX/bin to your path, where
PREFIX is what you passed to configure when building python (/opt in my
example). Then either run the egg as a shell script or unpack the
tarball and run “python setup.py install”. Here’s an example for
setuptools 0.6c9 and python 2.6:
need different versions, you can install them once in the main
site-packages dir for your new python install. Just make sure to use the
full path to easy_install (or prepend /opt/bin to the PATH when running
eggs or python setup.py), otherwise they will be installed for the
system python (2.4 in CentOS 5).
Create a directory to store your virtual environments:
Add the following lines to your bashrc (~/.bashrc):
If you used a prefix other than /opt (e.g. /usr/local) when
installing python, then change the PATH line and the source line
accordingly. This also assumes you are using bash. I’m not sure how to
set up virtualenvwrapper for other shells.
The PATH line will actually make python 2.6 your default interpreter
for login sessions. If this is undesirable you may be able to copy
virtualenv to some other location already in your path, and it will
should still use the appropriate version of python. Be careful if you
have virtualenv installed under your main system python – virtual
environments created with other version will be tied to that version of
python.
New login sessions will automatically source ~/.bashrc and have
support for virtualenvwrapper – to update your currently running shell,
source it explicitly:
IMPORTANT: you should use “#!/usr/bin/env python” for your scripts
instead of “#!/path/to/python” to make them more portable and work in
different virtualenv.
More documentation: virtualenvwrapper, Doug Hellmann’s original virtualenvwrapper article, virtualenv
mkvirtualenv NewEnv
This command will also automatically activate the new environment. To
activate NewEnv in another shell, use the “workon” command:
Running workon without any arguments will give you a list of all the
virtualenv’s you’ve created. Here are some common packages you may want
to easy_install into your new virtualenv. Note that you don’t need to
use sudo to install stuff into your virtualenv:
remove any old versions (but not -libs), and yum install
postgresql-devel. Note that you may need to remove nfs-utils to avoid a
libevent conflict (or maybe find an updated nfs-utils if you really need
it).
option since yum and other core packages depend on it. My solution is to
compile 2.6 and use /opt or /usr/local for the prefix. I also create a virtualenv
with the new python executable, so when I’m in the environment 2.6
becomes the default python. It also isolates all my python libraries for
a given project. Most of this article is actually distribution
agnostic, and the yum build requirement install will likely work on
other versions of CentOS and other RedHat derivatives like Fedora.
Install Build Requirements
Run the following command as root (or with sudo) to install gcc and the development libraries used by python:yum install gcc gdbm-devel readline-devel ncurses-devel zlib-devel \ bzip2-devel sqlite-devel db4-devel openssl-devel tk-devel bluez-libs-devel
Compile Python
Download and unpack the source tarball for your version of choice. For example:VERSION=2.6.1 mkdir ~/src cd ~/src wget http://python.org/ftp/python/$VERSION/Python-$VERSION.tar.bz2 tar xjf Python-$VERSION.tar.bz2 rm Python-$VERSION.tar.bz2 cd Python-$VERSION ./configure --enable-ipv6 --prefix=/opt make sudo make install
Run ./configure –help for more configure options.
If you plan to install multiple versions of python to the same
prefix, use “sudo make altinstall” instead of “make install” for the
versions you want installed as python2.6 etc, and “make install” for the
default version you want installed as simply python. See the README for
more details.
After running the make command you will see a list of modules that
were not built. If you installed all of the devel libraries listed
above, the only missing modules should be bsddb185 and sunaudiodev. You
probably don’t need these – bsddb185 is the old version of the berkely
db module, and sunaduiodev is for solaris. On x86_64 db and imageop may
also be in the list, but looking at the setup.py, it looks like this is
normal.
Install setuptools
Download setuptools– get the egg if it’s available for your version of python, otherwise
get the tarball. In either case prepend PREFIX/bin to your path, where
PREFIX is what you passed to configure when building python (/opt in my
example). Then either run the egg as a shell script or unpack the
tarball and run “python setup.py install”. Here’s an example for
setuptools 0.6c9 and python 2.6:
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c9-py2.6.egg#md5=ca37b1ff16fa2ede6e19383e7b59245a sudo PATH=/opt/bin:$PATH sh setuptools-0.6c9-py2.6.egg rm setuptools-0.6c9-py2.6.egg
Install virtualenv and virtualenvwrapper
sudo /opt/bin/easy_install virtualenv sudo /opt/bin/easy_install virtualenvwrapper
Install More Packages (Optional)
If you plan on using other modules in all your projects, and don’tneed different versions, you can install them once in the main
site-packages dir for your new python install. Just make sure to use the
full path to easy_install (or prepend /opt/bin to the PATH when running
eggs or python setup.py), otherwise they will be installed for the
system python (2.4 in CentOS 5).
Setup virtualenvwrapper
UPDATED 4-9: Thanks Brian for the feedback. Hopefully this is more clear.Create a directory to store your virtual environments:
mkdir ~/.virtualenvs
Add the following lines to your bashrc (~/.bashrc):
export PATH=/opt/bin:$PATH export WORKON_HOME=$HOME/.virtualenvs source /opt/bin/virtualenvwrapper_bashrc
If you used a prefix other than /opt (e.g. /usr/local) when
installing python, then change the PATH line and the source line
accordingly. This also assumes you are using bash. I’m not sure how to
set up virtualenvwrapper for other shells.
The PATH line will actually make python 2.6 your default interpreter
for login sessions. If this is undesirable you may be able to copy
virtualenv to some other location already in your path, and it will
should still use the appropriate version of python. Be careful if you
have virtualenv installed under your main system python – virtual
environments created with other version will be tied to that version of
python.
New login sessions will automatically source ~/.bashrc and have
support for virtualenvwrapper – to update your currently running shell,
source it explicitly:
source ~/.bashrc
IMPORTANT: you should use “#!/usr/bin/env python” for your scripts
instead of “#!/path/to/python” to make them more portable and work in
different virtualenv.
More documentation: virtualenvwrapper, Doug Hellmann’s original virtualenvwrapper article, virtualenv
Create a virtualenv (using virtualenvwrapper)
Choose a name for your new environment. I will use NewEnv as a placeholder. You can create new environments with mkvirtualenv:mkvirtualenv NewEnv
This command will also automatically activate the new environment. To
activate NewEnv in another shell, use the “workon” command:
workon NewEnv
Running workon without any arguments will give you a list of all the
virtualenv’s you’ve created. Here are some common packages you may want
to easy_install into your new virtualenv. Note that you don’t need to
use sudo to install stuff into your virtualenv:
workon NewEnv easy_install MySQL-python easy_install twisted easy_install egenix-mx-base
Install PostgreSQL and psycopg2
Centos 5 has postgres 8.1. To install a 8.3, setup the PostgreSQL yum repository,remove any old versions (but not -libs), and yum install
postgresql-devel. Note that you may need to remove nfs-utils to avoid a
libevent conflict (or maybe find an updated nfs-utils if you really need
it).
sudo yum erase nfs-utils sudo yum erase postgresql postgresql-devel sudo rpm -ivh http://yum.pgsqlrpms.org/reporpms/8.3/pgdg-centos-8.3-6.noarch.rpm sudo yum update sudo yum install postgresql-devel workon NewEnv easy_install psycopg2
相关文章推荐
- installing kernel source code in Redhat or centos, kernel headers install
- Installing the EPEL Repository on CentOS or RHEL
- Install python 2.6 in CentOS - Stack Overflow
- linux_How Do I Access or Mount Windows/USB NTFS Partition in RHEL/CentOS/Fedora
- Install ProcessMaker 3.1 or 3.2 in CentOS/RHEL 7
- Centos or RHEL 添加第三方源(不定期更新)
- Openstack Grizzily 单节点测试机安装( All In One CentOS/RHEL)
- 2015-05-19-Centos-6-python-2.6-升级到-2.7
- centos编译vim7.4支持python2.6
- Centos 6.4 python 2.6 升级到 2.7
- Ultimate Guide To Installing Nginx, MySQL, PHP5, PHP-FPM In CentOS 6.5
- CentOS6.5升级Python2.6到Python2.7并安装pip
- Installing python 2.7 on centos 6.3.
- centos6.5系统python2.6升级到python3.6
- centos python2.6 升级到 python2.7
- Centos 6.4 python 2.6 升级到 2.7
- Centos 6.4 python 2.6 升级到 2.7
- CENTOS 6.5 安装 Python 2.7 总结 系统包含python2.6
- 【CentOS】CentOS6.x 下python2.6升级到python2.7,easy_install的安装
- CentOS 6.X系统下升级Python2.6到Python2.7 的方法