1. 检查操作系统版本
cat /etc/redhat-release
如下操作命令以root用户执行
2. 安装编译python的依赖
安装开发工具
yum -y update
yum groupinstall -y "development tools"
安装额外lib文件用于编译python
yum install -y zlib-devel
yum install -y bzip2-devel
yum install -y openssl-devel
yum install -y ncurses-devel
yum install -y xz-libs
yum install -y sqlite-devel
#安装此库,使python导入sqlite3库
3. 下载、编译、安装python
下载、编译、安装python2.7.11
cd /home/wzz/tools
wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz
tar xf Python-2.7.11.tgz
cd Python-2.7.11
./configure --prefix=/usr/local
make && make altinstall ##!注意要使用altinstall 否则系统中不同版本的python都会被命名为python
alternatives --install /usr/bin/python3.4 python3.4 /usr/local/python3.4.4/bin/python3.4 1
安装完后测试:
[root@wzz ~]# python
#系统中还是python2.6,位于/usr/bin/python 最好不要用链接的方式升级python 否则会造成yum不可用
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[root@wzz ~]# python2.7
Python 2.7.11 (default, Feb 2 2016, 05:32:24)
4. 安装setuptools
下载ez_setup.py 然后以目标版本的python
运行,来安装setuptools
wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python2.7 ez_setup.py #注意使用python2.7 来运行。这个操作会下载setuptools-19.6.2-py2.7.egg
注:其他安装方法可参考: 官方安装指导
5. 安装pip
使用新安装的setuptools里的easy_install-2.7(位于/usr/local/bin/easy_install-2.7)安装pip
easy_install-2.7 pip
注1:有了pip就可以执行如下命令:
pip2.7 install [packagename]
pip2.7 install --upgrade [packagename]
pip2.7 uninstall [packagename]
注2:安装pip的其他两种方法:
a) 通过get-pip.py安装:
curl https://raw.githubusercontent.com/pypa/pip/master/contrib/get-pip.py | python2.7 -
b) 下载pip源码安装
pip-X.X.tar.gz
cd pip-x.x
python setup.py install
6. 安装virtualenv
pip2.7 install virtualenv
7.安装virtualenvwrapper
pip2.7 install virtualenvwrapper #/usr/local/bin/目录下创建virtualenvwrapper.sh
编辑~/.bashrc
export PIP_REQUIRE_VIRTUALENV=true
#如果没有启动虚拟环境,而且没有使用虚拟环境下的pip的绝对路径,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加此行。此时在不启动虚拟环境的情况下pip install django会提示:Could not find an activated virtualenv (required).
export WORKON_HOME=$HOME/.virtualenvs #虚拟环境存放目录
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
编辑完.bashrc后执行
source ~/.bashrc
注:使用virtualenvwrapper
#可使用--python选项指定Python版本 --python=/usr/bin/python2.6
mkvirtualenv [虚拟环境名称]: 创建并切换到虚拟环境
workon:列出虚拟环境列表
workon [虚拟环境名称] :启动/切换虚拟环境
rmvirtualenv [虚拟环境名称] 删除虚拟环境
deactivate: 离开虚拟环境
8. virtualenv虚拟环境里安装django
新创建了一个虚拟环境名为env1
(env1) [root@wzz site-packages]# pip install django
此时 django被安装在虚拟环境env1里
位置是:/root/.virtualenvs/env1/lib/python2.7/site-packages/django
验证
(env1) [root@wzz env1]# python
import django #如果python shell敲击方向键显示[[C^[[D 需执行pip install readline
print(django.get_version())
1.9.2
9.centos安装配置eclipse和pydev
pydev插件地址 http://pydev.org/updates
注:如果在线安装失败时, 需取消勾选 show only the latest version of available software
配置pydev指向virtualenv里python解释器
Windows> Preferences > PyDev > Interpreters > Python Interpreter >New >Browse
指向:~/.virtualenvs/<venv-name>/bin/python
10.mysql5.5
解决perl编译问题:
echo 'export LC_ALL=C'>> /etc/profile
source /etc/profile
安装CAMKE:
tar zxf cmake-2.8.4.tar.gz
cd cmake-2.8.4
./configure
make & make install
创建用户
groupadd mysql
useradd -g mysql mysql
编译安装mysql
tar zxf mysql-5.5.27.tar.gz
cd mysql-5.5.27
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.32 \
-DMYSQL_DATADIR=/usr/local/mysql-5.5.32/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql-5.5.32/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_DEBUG=0
make -j 4 #启用4个cpu去编译。提高编译速度。
make install
cd /usr/local/
ln -s mysql-5.5.32/ mysql
chown -R mysql.mysql /usr/local/mysql/data/
cd /home/wzz/tools/mysql-5.5.32/scripts
chmod a+x mysql_install_db.sh
./mysql_install_db.sh --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data 或者用 sh scripts/mysql_install_db.sh
cp support-files/my-small.cnf /etc/my.cnf #mysql源码目录下
cp support-files/mysql.server /etc/init.d/mysqld
cd /etc/init.d/
chmod +x mysqld
echo 'PATH=$PATH:/usr/local/mysql/bin' >>/etc/profile
#总之是要将mysqlbin目录放入环境变量
. /etc/profile
mysqladmin -u root password '123456'
mysql -uroot -p123456
11. 安装mysql-db
unzip MySQL-python-1.2.5.zip
cd MySQL-python-1.2.5
workon env1 #先进入虚拟环境env1
(env1) [root@wzz MySQL-python-1.2.5]# which python
/root/.virtualenvs/env1/bin/python
(env1) [root@wzz MySQL-python-1.2.5]# python setup.py build
(env1) [root@wzz MySQL-python-1.2.5]# python setup.py install
#可以看到mysqldb的被安装在虚拟环境env1里:
Installed /root/.virtualenvs/env1/lib/python2.7/site-packages/MySQL_python-1.2.5-py2.7-linux-x86_64.egg
测试:
>>> import MySQLdb
如果出现:
ImportError: libmysqlclient.so.18: cannot open shared object file: No such file or directory
解决方法是:
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18
如果此时eclipse正在运行会提示:
System PYTHONPATH changes detected 点击 Apply selected changes.
12. 创建简单django项目
创建项目时指定python解释器
1)创建数据库:django可以自动创建表不能自己创建数据库。可以用Phpmyadmin创建库
2)配置文件settings里连接数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'webdb',
'USER':'root',
'PASSWORD':'123456',
'HOST':'',
'PORT':'',
}
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'web', #!!要添加这个
]
3) models.py 里创建model,继承自models.Model类
from __future__ import unicode_literals
from django.db import models
class UserInfo(models.Model):
username=models.CharField(max_length=50) #create table's column
password=models.CharField(max_length=50)
gender=models.BooleanField()
age=models.IntegerField()
memo=models.TextField()
createDate=models.DateTimeField()
class Group(models.Model):
Name = models.CharField(max_length=50)
class User(models.Model):
Name=models.CharField(max_length=50)
4) 执行 (可以在eclipse里django > custom command >里添加 makemigrations和migrate命令
python manage.py makemigrations
python manage.py migrate
执行完后在数据库中成功创建表 web_UserInfo 表 ([应用名]_表名)