linux下安装python及搭建Django项目初体验

网上有很多关于linux下安装python的教程,大多是自己下载安装包解压编译的一个过程,个人感觉这么繁琐的操作为什么不用包管理器?个人本地电脑使用的Deepin,自带安装了python2和python3,但是玄乎的是没有安装pip3,所以这里以本人系统为例说下如何使用包管理器apt-get安装python3和pip3,红帽系统使用yum,差不多的流程。

python3安装

本人将程序安装在了/usr/bin目录,作用是该目录已经加入到了环境变量,装好之后直接可以使用python3命令做事

使用管理工具安装

1
2
3
4
5
6
# 进入目录
cd /usr/bin
# 使用sudo安装python3
sudo apt-get install python3.6
# centos使用yum安装
sudo yum install python36

安装好测试下自己python版本

1
python3 -V

就这么简单的一行命令就完成了python3的安装,看完这个你还会使用安装包自己解压编译来操作吗?

编译安装

某些特定时候还是需要使用编译安装

安装前准备

python库依赖包,先安装,避免掉坑

1
yum install gcc patch libffi-devel python-devel  zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y

下载安装包

1
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz

configure

这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:

1
2
# /usr/bin系统默认已加入环境变量,所以我们也直接把软件安装到这个目录
./configure --prefix=/usr

上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。

同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定。有一些软件还可以加上 --with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过允许 ./configure --help 察看详细的说明帮助。

make

这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。

如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。

make 的作用是开始进行源代码编译,以及一些功能的提供,这些功能由他的 Makefile 设置文件提供相关的功能,比如 make install 一般表示进行安装,make uninstall 是卸载,不加参数就是默认的进行源代码编译。

make 是 Linux 开发套件里面自动化编译的一个控制程序,他通过借助 Makefile 里面编写的编译规范进行自动化的调用 gcc、ld 以及运行某些需要的程序进行编译的程序。一般情况下,他所使用的 Makefile 控制代码,由 configure 这个设置脚本根据给定的参数和系统环境生成。

make install

这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)

注:也可以直接使用 make && make install进行编译安装

pip3安装

开头说了,本人电脑没有安装pip3,同样的流程我们来安装下pip3

管理包安装

1
2
3
4
5
# 进入目录
cd /usr/bin
# 使用sudo安装python3
sudo apt-get install python3-pip

安装好看下自己的python包列表

1
pip3 list

pip3到此安装完成

手动安装

下载安装包

1
2
wget https://files.pythonhosted.org/packages/aa/1a/62fb0b95b1572c76dbc3cc31124a8b6866cbe9139eb7659ac7349457cf7c/pip-19.2.2.tar.gz

解压

1
tar -zxvf pip-19.2.2.tar.gz

安装编译

1
2
3
cd pip-19.2.2
python3 setup.py build
python3 setup.py install

测试

1
2
[root@iZ11cz2tzxcZ pip-19.2.2]# pip3 -V
pip 19.2.2 from /usr/local/lib/python3.6/site-packages/pip-19.2.2-py3.6.egg/pip (python 3.6)

完成!!!1

搭建Django项目

安装Django

1
pip3 install django

pip3默认安装新版本的Django

创建Django项目

1
2
3
4
# 进入网站目录
cd /media/tony/文档
# 创建django项目
django-admin startproject mysite

创建应用

1
2
3
4
5
6
# 进入django项目
cd mysite
# 创建app01应用,下面两种创建方式都可以
django startapp app01
# 或者
python3 manage.py startapp app01

修改settings

ALLOWED_HOSTS = [‘*’]

ALLOWED_HOSTS的作用

  • ALLOWED_HOSTS是为了限定请求中的host值,以防止黑客构造包来发送请求。只有在列表中的host才能访问。

  • ALLOWED_HOSTS后面所跟的属性值是一个字符串列表值,这个字符串列表值表示当下这个Django站点可以提供的host/domain(主机/域名)。这是一种安全措施,通过使用伪造的HTTP主机标头提交请求来防止攻击者中毒缓存并触发带有恶意主机链接的密码重置电子邮件,即使在许多看似安全的Web服务器配置下也是如此。

前景:本人有两台电脑(统一局域网),一台装的deepin,一台windows,本人要用windows访问deepin上搭建的django项目,所以需要设施allowed_host(使用虚拟机也要设置哟)。

运行项目

1
python3 manage.py runserver 0.0.0.0:8000

默认django运行的是127.0.0.1:8000,我这里使用0.0.0.0的作用是让我的window主机也可以使用deepin主机的ip进行来访问

访问项目

在deepin主机上访问项目地址:127.0.0.1:8000

在window主机上访问项目地址:http://10.10.10.125:8000

都出现了

完美!!!