Linux - Django + Mysql + Nginx + uwsgi 部署项目 - 安装 nginx 服务器 - (1)
Linux - Django + Nginx + uwsgi 部署项目 - rpm 包安装 Mysql 5.x 服务器 - 删除 Mysql 服务器 - 解决创建新数据库的utf8编码问题(3)
Linux - Django + Nginx + uwsgi 部署项目 - 安装 uWSGI 服务器 -(4)
可以的话,安装 python 解释器选用 3.6 版本的比较好,偶数的 python 解释器版本比较稳定。
yum update
更新可能会比较久一点,等一会
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make
不能忽略相关包,没有安装readline-devel 有可能导致执行python模式无法使用键盘的上下左右键
注意,在使用 wget 命令前,可以 cd 到自己的用户目录下,或者是自己平常放安装包的地方,这是一个好习惯,不然乱放安装包,以后会挺杂乱的。下面是已经 cd 到了一个常放安装包的目录下了。
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
tar -xvf Python-3.7.0.tar.xz
ls 命令显示当前目录下解压后的 python3.7 安装包,cd 到该安装包目录内 cd Python-3.7.0
在该目录下,输入如下命令(注意这里--prefix是指定编译安装的文件夹)
./configure --prefix=/usr/local/python3
执行如下代码后,会编译安装到 /usr/local/bin/ 下,且不用添加软连接或环境变量
./configure --enable-optimizations
最后是 make 命令编译成可执行文件,再使用 make install 命令安装软件
make && make install
这里的 make install 命令和 Windows 系统安装某种软件的界面安装按钮作用差不多,一般是默认 Windows 操作系统 C 盘下某路径,不过 Windwos 操作系统安装某种软件时,一般也提供了自定义路径安装软件,所以这里 Linux 操作系统的 make install 也提供了相应的选择 —— 自定义软件安装路径,具体操作如下:
这里的 make install 安装软件可以指定路径,并非一定要是 /usr/local/python3 默认安装路径,可以如下操作:
make && make install /home/XXX/program/python3
XXX 是用户目录
和 Windows 系统安装软件自定义安装路径一样。
参考方法:不是笔者本人实际的解决方法
为 python3 建立软连接,这有点类似快捷方式 shortcut ,下面取决于自己是否要覆盖掉 python2 的相关快捷配置
注意记住并找到自己 make install 的 python 安装路径 下面是默认python安装路径
第一个是实际的python软件可执行文件,类似.exe 文件,在这里要指定python的可执行文件绝对路径,到/usr/bin/python3 或者 /usr/bin/python 路径下,到该路径的意义在于,这个目录是用户的 Shell 可执行命令的目录,也就是说,我们的 Shell 命令的可执行文件其实一般都在里面,比如 ls、cd、ll 等等的 Shell 命令都在里面,那么这里操作就有点类似配置全局环境变量,只要在这里配置了软连接,就相当于配置了系统的环境变量了。
ln -s /usr/local/bin/python3.7 /usr/bin/python3 # 添加软连接
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3
如果要覆盖python2.x 版本的链接,用下面的方法,当然两种方法都可以一起用,笔者自然是全都要。
ln -s /usr/local/bin/python3.7 /usr/bin/python # 添加软连接
ln -s /usr/local/bin/pip3.7 /usr/bin/pip
ln -s 建立软连接命令,不加 -s 默认是硬链接
从左到右,第一个 /usr/local/bin/python3.7是 python3.x 的安装目录,第二个/usr/bin/python3是想要在用户命令的可执行目录内,配置的一个快捷方式名是 python,在Shell 终端输入 python就可以测试出效果了。
ll
或者
ll -l
推荐下面用法 快速找到指定的文件的软连接,Shell 支持正则匹配,* 指定所有的可能的字符串
ll python*
下面的左边的是软连接名 —> 右边的是实际的软件可执行文件

当然上面这些命令,仅仅支持查询当前的目录下存在的软连接,无法查找全部的软连接,所以如果想要找到某个软连接,就得到到时配置软连接的软连接名,比如这条命令:
ln -s /usr/local/bin/pip3.7 /usr/bin/pip
那么想要找到 pip 命令的软连接,那么就得到 /usr/bin/pip 目录下,输入如下命令:
ll /usr/bin/pip*
效果如下:

验证命令:
python3 -V && pip3 -V
解除软连接:
unlink 软连接名 (目录名绝对路径,是合法的)
eg:
建立软连接,其软连接名为 /usr/bin/python
ln -s /usr/local/bin/python3.7 /usr/bin/python
解除软连接:
unlink /usr/bin/python
以上面的例子为例:
将python3安装目录下的/bin目录,即/usr/local/bin/python3.7 加入PATH (系统环境变量配置文件 /etc/profile)
shell 终端输入命令
vim /etc/profile
然后在/etc/profile文件末尾添加
export PATH=$PATH:/usr/local/bin
修改完后,还必须要让这个环境变量在配置信息中生效,shell 终端界面执行命令
source /etc/profile
(不懂 Linux 系统的环境变量的,请参考链接:Linux - 配置Linux用户的环境变量- Anaconda3的环境变量配置)
但这样配置 Linux 环境变量其实没啥用,且不方便,可以看到下面,如果出现了没有 python 名字的python解释器,如只有 python3.7 解释器呢?你可以尝试下,没法直接输入 python 直接进入解释器的界面,当然你可能会想着直接将 python3.7 解释器改名为 python,但这是比较逗比的想法,如果下载了python很多的版本,那么每次都要将需要某版本的python 解释器改名,比如 python3.7 改名为 python,这不是开玩笑吗?

而且如果项目中的 python 文件有指定了解释器的路径,通常其默认路径是 #!/usr/bin/python 或者 #!/usr/bin/env python,这是文件开头便被指定了 python 解释器的路径了 —— 文件头解释器路径。
与此修改环境变量的方法相比,指定当前的文件解释器路径,使用软连接的作用就很关键了,可以转换当前的解释器版本,软连接的核心作用,在笔者看来就在于切换软件版本或者是虚拟环境下的 python 解释器。
简单使用 uwsgi + nginx 在本地 Ubuntu 成功部署 django 项目
Linux部署Django (Nginx + uwsgi + Python3 + Django)全过程
Django + Uwsgi + Nginx 的生产环境部署
在linux环境默认安装python2下,再安装python3(两者共存)
linux(centos7)安装mysqlclient的先后步骤
uwsgi出现No such file or directory [core/uwsgi.c line xxxx]
在linux环境默认安装python2下,再安装python3(两者共存)yum解释器报错:因为执行yum需要python2版本,所以要修改yum的配置