1.1 操作系统
centos7.9 64位
1.2 下载python3.8 安装包
使用如下命令下载python 3.8:
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
如果提示-bash: wget: 未找到命令,需要先使用yum安装wget,命令如下:
yum -y install wget
安装完成后在secure fx可以查看解压包的位置
2.1 通过以下命令解压缩下载的文件:
tar zxf Python-3.8.0.tgz
2.2 输入cd / 然后再输入ls 可得到如下结果:
说明已经解压成功
因为编译 Python 源代码需要依赖于很多工具,所以得先准备一下,依次执行以下命令:
yum update -y
yum groupinstall -y ‘Development Tools’
yum install -y gcc openssl-devel bzip2-devel libffi-devel
4.1 进入解压包解压后的文件位置:
在centos中输入:cd /Python-3.8.0
4.2 配置安装路径:
执行如下命令:
1 ./configure prefix=/usr/local/python3 --enable-optimizations
–enable-optimizations是优化选项(LTO,PGO 等)加上这个 flag 编译后,性能有 10% 左右的优化,但是这会明显的增加编译时间。
温馨提示:–enable-optimizations 该语句可能导致之后安装报错:Could not import runpy module 个人建议最好将其删除
原因是:在低版本的gcc版本中带有–enable-optimizations参数时会出现上面问题
gcc 8.1.0修复此问题
4.3 开始安装:
./configure命令执行完毕之后创建一个文件 Makefile, 供下面的make命令使用,执行make install之后就会把程序安装到我们指定的文件夹中去。
2 make && make install
如果出现了Could not import runpy module 先检查有没有按我上面说的删除–enable-optimizations,再者就是应该是安装依赖工具的时候出错了
如果出现如下错误,则接着看下面的解决方法
Error Downloading Packages
文章转自https://www.cnblogs.com/twobrother/p/11577636.html
解决方法如下:
yum出现Error downloading packages错误
错误表现方式:
yum可以list,可以clean cache,但是无法安装,错误提示:
Downloading packages:
Error downloading packages:
libevent-devel-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录
libevent-2.0.21-4.el7.x86_64: [Errno 5] [Errno 2] 没有那个文件或目录
错误出现原因:
安装python3修改软链接,没有完全修改导致
[root@duke ~]# mv /usr/bin/python /usr/bin/python2.6.6
[root@duke ~]# ln -s /usr/local/bin/python3.6 /usr/bin/python
[root@duke ~]# vi /usr/bin/yum
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
改过之后发现yum可以list,可以clean cache,但是无法安装。
错误解决:
把下载器中的python也修改对应的版本
[root@duke ~]# vi /usr/libexec/urlgrabber-ext-down
将文件头部的
#!/usr/bin/python
改成
#!/usr/bin/python2.6.6
软链接其实就相当于我们常用的电脑主机的快捷方式
阿里云服务器的centos中会自带一个python2.7.5,而默认的python路径也是python2.7.5,如果要用到我们刚才安装的pyhton3.8的话就要修改软链接。
我们首先查看一下 Python 可执行文件的位置:
which python
然后切换到相应的目录:
cd /usr/bin
查看相关的python信息:
ls -la python*
发现当我们执行python 命令时,系统指向python 2,然后python 2指向python 2.7,所以系统默认使用的python版本仍然是python 2。
首先将python 改名为 python.bak
mv python python2.bak
再次查看python相关信息:
进入目录/usr/bin,查看有关yum的文件:
ls -la yum*
使用vi 进入文本编辑器(如果有多个yum配置文件,都要进去修改):
vi yum
点击i进入编辑模式之后将#!/usr/bin/python 改为#!/usr/bin/python2,按ESC退出编辑模式,输入:wq!保存修改退出。
同样进入文件 /usr/libexec/urlgrabber-ext-down 做同样修改。
7.1配置python3软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
ls -la python*
配置后结果
7.2 配置pip3软链接
ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip
ls -la pip*
因为python3中是自带pip3的,如果没有的话执行如下步骤就行了
1.安装源
yum -y install epel-release
2.安装pip
yum install python-pip
3.对安装好的pip进行升级
pip install --upgrade pip (注意是两个短横线~~)
如果你打完代码后,再次查看软链接情况发现它在闪烁的话,说明没有链接成功。
这个时候大部分原因是链接的路径有问题,不清楚centos文件路径的同学可以下载securefx来直观地了解文件位置,其中要创建软链接要遵守这个规则 ln -s [源文件] [软链接文件]
在服务器中输入 python --version和pip -V
结果如下:
到了这一步的话,你的python环境已经在服务器上搭建完成了,接下来就是将我们的django项目上传到服务器中。
9.1 将Django打包上传到SecureCRT
先吧自己的Django项目整成压缩包,然后在 SecureFx中新建一个名为Sever的文件夹,将压缩包丢进去,就像这样
依次执行下列语句获取rar解压方法
wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz
tar -xf rarlinux-x64-5.3.0.tar.gz
cd rar
make
rar x test.rar //解压 test.rar 到当前目录
为了后面方便更改代码,这里我们辛苦一点在Pycharm中同步部署我们的Django项目
步骤如下:
1、在“工具(Tools)”菜单中找到“部署(Deployment)”选项,选择子菜单中的“配置(Configuration…)”选项。
2、在部署(Deployment)窗口中点击加号(+)按钮,设置服务器配置的名称和类型(选择SFTP)
3、在配置界面的“连接(Connection)”设置中,分别添加:服务器IP地址、端口(默认22)、服务器中存放源码的目录以及登录服务器的账号名称与密码
提示:完成配置之后,点击“测试SFTP连接(Test SFTP connection…)”按钮进行服务器连接测试,保证配置正确
4、然后,切换到“映射(Mappings)”的设置,选择本地源码所在目录以及服务器上传源码的目录。
5、在选项设置中,我们选择自动将修改内容上传服务器的操作,这里我们可以选择“明确的保存动作(On explicit save action)”。也就是说当我们按下快捷键“Ctrl+S”时,系统会自动上传修改内容到服务器。
6、好了,到这一步你的Pycharm就已经和云服务器连接起来了,你可以在本地修改代码以及在终端运行代码后会自动同步至云服务器上。
好了,经过上面这么繁琐的操作后,你已经完成了80%了,加油,胜利快到了。
9.2 安装Django
pip3 install django
安装好了后进入python,输入下图语句可以查看django的版本
9.3 安装uwsgi
pip3 install uwsgi
安装成功后输入uwsgi是这个样子
给uwsgi建立软链接
ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
9.4 配置Django项目
本博主使用到的项目已经是连接到Mysql中并且建立好数据库的了,不懂怎么连接与配置mysql的同学可以新开一个网页去搜一下,在这里我就不做过多的说明了。
9.4.1数据库迁移
这个步骤博主遇到的错误非常之多,希望你们可以一次迁移成功吧。
首先要到我们的服务器存放的路径下,我的服务器存放的路径是 cd /Server/GroupProject
然后依次运行
python manage.py makemigrations
python manage.py migrate
因为我之前遇到的问题太多,我现在也记不太起来了,主要是1054 1366这几个错误,遇到了也不要慌CSDN都能找到解决方法,总得来说报错一般是你在一开始建立数据库的时候没有设置中文,而你却在建表的时候设置了中文,这个时候如果你的Django里边有中文字段的话就会报错,所以说如果你想要让数据库全中文支持的话,最好重新建一个数据库的同时设置中文,这样就基本不会有问题了。
附上建库同步设置中文方法:
mysql:CREATE DATABASE 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
再不行的话试试这样:
vi /etc/my.cnf
文本添加内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server=utf8_general_ci
character-set-server=utf8
init-connect=‘SET NAMES utf8’
另外,不要忘记在pycharm主项目中的setting中添加这个,目的是所有ip都可以访问。
9.4.2 安装nginx
安装解压包 wget http://nginx.org/download/nginx-1.13.7.tar.gz
解压 tar -zxvf nginx-1.13.7.tar.gz
依次执行以下命令:
cd nginx-1.13.7
./configure
make
make install
注意:nginx一般默认安装好的路径为/usr/local/nginx
配置nginx
vim /etc/nginx/nginx.conf
添加以下内容
9.5 运行Django项目
好了到了这个时候你已经可以通过ip来打开我们的Django项目了。
博主的实例是一个Django自带的admin后台,可以方便直观地检测我们项目是否正常运行。
首先进入项目路径 cd /Server/GroupDjango
然后输入 python manage.py runserver 0.0.0.0:8000
注意!! 这里的python指的是之前我们软链接指向的路径,我这里是用python指向python3.8这个应用的,如果报错的话,可以回去看看软链接设置的对不对。
最后,成功运行后的结果如下
我们可以通过http:// 服务器ip地址:8000/admin/来访问admin后台