Linux(CentOS7.2)下Python3安装配置和系统原python2共存以及Django配置搭建
2018-02-17 20:23
1226 查看
Linux下Python3安装以及Django配置搭建
Linux(CentOS7.2)下Python3安装配置和系统原python2共存以及Django配置搭建 。本次操作安装是在CentOS 7.2 minial 环境下进行。虽然原系统自带python,但本次需求使用python3 版本,需新安装配置。 本次安装必须使用的tar 包以及whl 包如下列出(其他需要包的可能在有的linux 系统中已经安装存在,暂时不列出,后面安装了再提):
一、Linux下Python3的安装
1) 安装依赖软件包首先需要安装一些依赖的软件包,这些包根据每个系统的不同可能有的已经
安装。
make、gcc、zlib-devel、bzip2-devel 、openssl-devel 、ncurses-devel 、
sqlite-devel、readline-devel 、tk-devel。
先查看本挂载的系统是否已经安装这些包。命令如下:
# yum list make* zlib* ……
(1)已经安装的软件包
(2)可安装的软件包
若没有安装,则运行以下命令进行安装:
# yum install zlib-devel.x86_64
注:在离线情况下,本安装命令适用于已经成功挂载 CentOS 7.2 桌面完全
版iso 镜像的情况下,系统自带了这些尚未安装包(如上图“可安装的软件包”),
否则需要在线安装,或是下载包之后使用命令安装:
# rpm -ivh zlib-devel.xxxxx.pm
2) 查看系统原python版本以及备份
centOS 7.2 默认安装的是python 2.7.5,首先使用命令:
# which python
来查看python 可执行文件的路径,如下图所示:
进入到该目录下,使用mv 命令进行备份原python 可执行文件:
# mv python python.bak
3) 安装python3
加压python3 的tgz 包,并进入其解压目录下:
#tar -xvzf Python-3.6.4.tgz (若是 Python-3.6.4.tar.xz ,则用 tar -xvJf
xxxxx.tar.xz 解压)
#cd Python-3.6.4/
然后配置python3 的安装路径,执行如下命令:
# ./configure --prefix=/usr/local/python3
如上执行完生成Makefile,没有error 表示无误,假如提示error 或是warning,
则根据error 和warning 内容安装相应缺少的包。再假如出现如下图所示错误:
即:
此时执行到生成config.status 时候编译异常,把config.status 拷贝出来,查看异常所在:
这个编译错误不通过原因就是源包路径(ac_pwd)有特殊符号“ ' ”,这
个单引号和路径前面的单引号相匹配,结束了路径,后面的一个单引号开始了引
用,导致引号后面的语句都被改变了语句,被编译错误,最终导致源码包在
configure 配置时候报syntax error。更改源包路径即可解决此问题。
configure 正常执行完成之后,就可以执行如下命令安装(前提是之前的make
安装包已安装完成):
# make && make install
成功安装之后末尾出现以上信息。
4) 将默认的python2环境改为python3
configure: creating ./config.status
./config.status: line 476: syntax error near unexpected token `)'
./config.status: line 476: ` *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;'
之前第二步已经将执行目录下的python备份成python.bak, 这个时候系统是
没有可执行的python 环境,所以将刚安装配置好的python3 执行命令添加软链到
系统执行目录/usr/bin 中,命令如下:
# ln -s /usr/local/python3/bin/python3 /usr/bin/python (如图)
这样软链就添加成功。
测试环境安装成功与否,
#python -V (可以查看到python3 的版本)
#python2 -V (可以查看到python2 的版本)
5) 修改yum默认编译python环境
由于yum 编译环境使用的是默认的python 环境,且必须是python2,现在默
认的python 环境改为python3 了,所以yum 运行编译报错使用不了。
这时候就需要将yum 的编译改为python2,如下命令进去:
# vim /usr/bin/yum
修改“#!/usr/bin/python”为“#!/usr/bin/python2”,如图:
退出保存即可。yum 命令即可正常运行。
6) 配置pip工具
pip 工具在本项目用于在线或是离线安装python 的第三方库。
在上述安装 python3 时候已经将 pip 工具安装完成,这个时候只需要将 pip
执行命令软链到系统默认执行命令中即可,如下
# ln -s /usr/local/python3/bin/pip3 /usr/bin/pip (如图)
二、Django安装配置以及第三方开发库安装
1) 安装前操作首先安装需要的rpm 包,如下:
sqlite-devel-3.7.17-8.el7.x86_64.rpm 、 zlib-1.2.7-17.el7.x86_64.rpm 、
zlib-devel-1.2.7-17.el7.x86_64.rpm
先用命令 # yum list sqlite* zlib* (如下图)查看本机是否已安装好,或
是挂载的系统已存在相应的rpm 软件包,若没有,则查看附件
2) 安装Django源包
加压Django 源包,并进去解压包路径里:
#tar -xvzf Django-2.0.1.tar.gz
#cd Django-2.0.1/
进入路径下之后执行“# python setup.py install”命令进行安装,如下:
执行完成之后,会出现以下error:
这是由于本安装是在离线情况下,默认没有 pytz 模块该第三方库,在线情
况下会自动搜索资源进行安装,现在离线报错,下面安装 pytz 模块以及第三方
依赖库。
3) 第三方python库安装
第三方安装库见附件。
由于python 已经安装了pip 工具,这时候可以用pip 进行离线安装已经下载
好的whl 库,进入whl 存放路径,执行“pip install xxxxxx.whl”进行安装。
首先安装pytz 模块,如下图所示:
提示Successfully,即成功安装。
下面安装安装与Django 配套的six(绘图库文件):
安装连接orcal 的库文件:
安装restful api 框架库的相关依赖库:
安装HTTPie 测试restful api 工具相关依赖包:
httpie 安装完之后,它的执行命令是在python 的bin 安装路径里,想在命令
行中使用http 命令,需要软链到bash 中:
4) 测试django安装是否成功
在python 环境下,输入以下代码:
>>>import django
>>>print(django.get_version())
成功打印出如上版本号,则说明成功。
三、新建一个Django项目启动服务
1) 新建前准备工作新建项目使用“django-admin”创建,但是bash 命令中是没有的,需要通过
软连接将其加到系统命令中。首先到django-admin 执行命令所在位置,然后通过
“ln -s XXXXX XXXX”,如下:
软链成功后就可以使用“django-admin”创建项目了。
2) 新建Django项目以及项目结构说明
进去将要创建项目的路径里,使用“django-admin”创建项目,
# django-admin startproject cloudDjango ,如图:
然后可以看到 cloudDjango 文件夹以及其中的文件生成,使用“tree”命令
查看该项目结构,如下:
目录说明:
cloudDjango: 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进
行交互。
cloudDjango /__init__.py: 一个空文件,告诉 Python 该目录是一个 Python
包。
cloudDjango /settings.py: 该 Django 项目的设置/配置。
cloudDjango /urls.py: 该 Django 项目的 URL 声明,一份由 Django 驱动的
网站"目录"。
cloudDjango /wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行项
目。
3) 启动项目
进入到该项目目录下,输入“python manage.py runserver 0.0.0.0:8000”来启
动服务,“0.0.0.0:8000”是让其他客户端链接到服务器,8000 位端口号,如果不
输入,那么默认为“0.0.0.0:8000”,如图所示:
然后在浏览器输入本地及端口号8000 即可,如下:
四、创建Restful api 服务接口并测试
1) 简单介绍Django Rest frameworkDjango Rest framework 的流程大概如图所示:
2) 配置rest_framework
首 先 在 Django 的 setting.py 中 的 INSTALLD_APPS 中 添 加
“rest_framework”,
在Django 的url.py 中为rest_framework框架的login和logout视图添加url,
如下:
3) 新建一个app
新建app 命令“python manage.py startapp snippets”,如下:
然后可以看见snippets 目录生成:
然后将该app 加入到setting.py 中的INSTALLD_APPS,如下:
4) 创建model
在视图model.py 中添加了一张表如下:
然后开始同步到数据库中,
# python manage.py makemigrations snippets
# python manage.py migrate
如图出现如下表示无误:
5) 创建Serializer类
Serializer 类相似于Form,作用就是从传入的参数中提取需要的数据,并且转化为JSON
格式(此时已经是字节码),同时支持反序列化到model 对象。
在snipperts 文件夹下添加serializer.py,如:
6) 使用Serializer
先进入到该项目下的Django 的shell 中,
"python manage.py shell" ,如下:
向库中添加俩条数据,然后序列化之后输出数据:
7) 使用ModelSerializer
ModelSerializer 类似于 Django 的 modelform,可以直接关联到 models 中的表,即在
model.py 中添加ModelSerializer,如下:
8) 在Django的视图中使用Serializer
可以像常规的Django 视图的写法一样,返回序列化输出数据,也可以写一个视图对应
其models 中的表,实现对它的删、改、查。如下:
9) url添加
先在snippets 下自己的url.py 中添加对应的url,如下:
然后将该snippets 的urls 加入到总的urls 中,如下:
10) 测试API
本测试使用httpie 模块来测试,启动本项目服务,然后控制台输入:
# http http://127.0.0.1:8000/snippets/
如下图所示:
进行put 操作,控制台输入,
# http put http://127.0.0.1:8000/snippets/1/ code='print("hello Python world");'
language="python"
如上图所示,可以看出,修改数据成功。
进行insert 操作,在snippets 的views 中添加了一个自定义的request.method == 'INSERT'
判断方法,用于新增数据,控制台输入,如下,
# http insert http://127.0.0.1:8000/snippets/ code='print("this is a test");'
如上图所见,数据成功添加进去。
进行delete 操作,控制台输入,
# http delete http://127.0.0.1:8000/snippets/3/
如上图所示,id=3 的数据成功被删除。
11) 使用管理员页面对该model进行管理
Django 框架自带管理页面,不过需要自己创建管理员用户进行登陆
浏览器输入“127.0.0.1:8000/admin”,如下:
这时是登陆不了,先为该项目创建超级用户,在该项目的目录下终端输入:
# python manage.py createsuperuser
注:创建密码时候注意不要和邮箱地址类似,也不要少于8 个字符。
使用刚创建的用户进去,可以看到建立的model 表。可以对其进行,新增,
修改,删除。
相关文章推荐
- contos7.2 搭建 python pip uwsgi 以及安装 django 框架
- Linux系统Centos以及Ubuntu下安装新的python版本
- CentOS 7安装Python3.6过程(让linux系统共存Python2和Python3环境)
- U盘安装CentOS7.2 Linux系统和基础配置
- CentOS 6 安装 Python3.5以及配置Django
- 环境搭建之Linux系统安装MySQL(centos7.2)
- CentOS 7安装Python3.6过程(让linux系统共存Python2和Python3环境)
- Win7环境下Python3安装以及Django配置搭建测试
- Linux系统下安装Python以及搭建科学计算(机器学习)环境(anaconda和spyder)
- Linux系统之CentOS6.5最小安装后的配置
- Linux安装配置maven3.0以及搭建nexus私服
- Linux 安装配置maven3.0 以及搭建nexus私服
- nginx在centos系统下安装以及nginx的伪静态安装配置
- Linux 安装配置maven3.0 以及搭建nexus私服
- 在linux系统用命令行下载、安装和配置jdk1.8的详细步骤(以CentOS为例)
- CentOS Linux系统下安装Redis过程和配置参数说明
- Linux系统(CentOS 6.4)的NTFS驱动-NTFS-3g的安装和配置
- Linux安装配置maven以及搭建nexus私服(编写启动脚本)
- VPS LINUX系统上安装配置LNMP 以及挂载硬盘 ,并把数据库和网站弄到挂载硬盘上!
- Linux安装配置maven以及搭建nexus私服(实践记录)