pycharm部署django项目到云服务器的详细流程


Posted in Python onJune 29, 2021
目录
  • 前言
  • 1-下载python3.8压缩包
  • 2-解压缩安装包
  • 3-安装依赖工具
  • 4-安装python3.8
  • 6-修改yum配置文件
  • 7-配置python
  • 8-检验配置结果
  • 9-上传并部署Django项目

前言

大家想一想,如果要在一台电脑上运行python程序需要些什么工具呢?
显而易见,我们需要在电脑上安装python应用,配置python环境等等。那么如果我们需要在云服务器上运行python程序的话要怎么做呢?相信大家已经想到了,就是照葫芦画瓢,在云服务器上做相同的工作就好了。

1-下载python3.8压缩包

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可以查看解压包的位置

pycharm部署django项目到云服务器的详细流程

2-解压缩安装包

2.1 通过以下命令解压缩下载的文件:

tar zxf Python-3.8.0.tgz

2.2 输入cd / 然后再输入ls 可得到如下结果:
说明已经解压成功

pycharm部署django项目到云服务器的详细流程

3-安装依赖工具

因为编译 Python 源代码需要依赖于很多工具,所以得先准备一下,依次执行以下命令:

yum update -y

yum groupinstall -y ‘Development Tools'

yum install -y gcc openssl-devel bzip2-devel libffi-devel

4-安装python3.8

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

5-修改python2软链接

软链接其实就相当于我们常用的电脑主机的快捷方式

阿里云服务器的centos中会自带一个python2.7.5,而默认的python路径也是python2.7.5,如果要用到我们刚才安装的pyhton3.8的话就要修改软链接。
我们首先查看一下 Python 可执行文件的位置:
which python

然后切换到相应的目录:
cd /usr/bin

查看相关的python信息:
ls -la python*

pycharm部署django项目到云服务器的详细流程

发现当我们执行python 命令时,系统指向python 2,然后python 2指向python 2.7,所以系统默认使用的python版本仍然是python 2。

首先将python 改名为 python.bak
mv python python2.bak
再次查看python相关信息:

pycharm部署django项目到云服务器的详细流程

6-修改yum配置文件

进入目录/usr/bin,查看有关yum的文件:
ls -la yum*

pycharm部署django项目到云服务器的详细流程

使用vi 进入文本编辑器(如果有多个yum配置文件,都要进去修改):
vi yum
点击i进入编辑模式之后将#!/usr/bin/python 改为#!/usr/bin/python2,按ESC退出编辑模式,输入:wq!保存修改退出。

同样进入文件 /usr/libexec/urlgrabber-ext-down 做同样修改。

7-配置python

3、pip3软链接

7.1配置python3软链接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python
ls -la python*
配置后结果

pycharm部署django项目到云服务器的详细流程

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 (注意是两个短横线~~)

pycharm部署django项目到云服务器的详细流程

如果你打完代码后,再次查看软链接情况发现它在闪烁的话,说明没有链接成功。
这个时候大部分原因是链接的路径有问题,不清楚centos文件路径的同学可以下载securefx来直观地了解文件位置,其中要创建软链接要遵守这个规则 ln -s [源文件] [软链接文件]

8-检验配置结果

在服务器中输入 python --version和pip -V
结果如下:

pycharm部署django项目到云服务器的详细流程

到了这一步的话,你的python环境已经在服务器上搭建完成了,接下来就是将我们的django项目上传到服务器中。

9-上传并部署Django项目

9.1 将Django打包上传到SecureCRT
先吧自己的Django项目整成压缩包,然后在 SecureFx中新建一个名为Sever的文件夹,将压缩包丢进去,就像这样

pycharm部署django项目到云服务器的详细流程

依次执行下列语句获取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…)”选项。

pycharm部署django项目到云服务器的详细流程

2、在部署(Deployment)窗口中点击加号(+)按钮,设置服务器配置的名称和类型(选择SFTP)

pycharm部署django项目到云服务器的详细流程

3、在配置界面的“连接(Connection)”设置中,分别添加:服务器IP地址、端口(默认22)、服务器中存放源码的目录以及登录服务器的账号名称与密码

提示:完成配置之后,点击“测试SFTP连接(Test SFTP connection…)”按钮进行服务器连接测试,保证配置正确

pycharm部署django项目到云服务器的详细流程

4、然后,切换到“映射(Mappings)”的设置,选择本地源码所在目录以及服务器上传源码的目录。

pycharm部署django项目到云服务器的详细流程

5、在选项设置中,我们选择自动将修改内容上传服务器的操作,这里我们可以选择“明确的保存动作(On explicit save action)”。也就是说当我们按下快捷键“Ctrl+S”时,系统会自动上传修改内容到服务器。

pycharm部署django项目到云服务器的详细流程

6、好了,到这一步你的Pycharm就已经和云服务器连接起来了,你可以在本地修改代码以及在终端运行代码后会自动同步至云服务器上。

pycharm部署django项目到云服务器的详细流程

好了,经过上面这么繁琐的操作后,你已经完成了80%了,加油,胜利快到了。

9.2 安装Django
pip3 install django
安装好了后进入python,输入下图语句可以查看django的版本

pycharm部署django项目到云服务器的详细流程

9.3 安装uwsgi
pip3 install uwsgi
安装成功后输入uwsgi是这个样子

pycharm部署django项目到云服务器的详细流程

给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都可以访问。

pycharm部署django项目到云服务器的详细流程


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

添加以下内容

pycharm部署django项目到云服务器的详细流程

9.5 运行Django项目

好了到了这个时候你已经可以通过ip来打开我们的Django项目了。
博主的实例是一个Django自带的admin后台,可以方便直观地检测我们项目是否正常运行。
首先进入项目路径 cd /Server/GroupDjango
然后输入 python manage.py runserver 0.0.0.0:8000

注意!! 这里的python指的是之前我们软链接指向的路径,我这里是用python指向python3.8这个应用的,如果报错的话,可以回去看看软链接设置的对不对。

pycharm部署django项目到云服务器的详细流程

最后,成功运行后的结果如下

pycharm部署django项目到云服务器的详细流程

我们可以通过http:// 服务器ip地址:8000/admin/来访问admin后台

pycharm部署django项目到云服务器的详细流程

如果还需要

到此这篇关于pycharm部署django项目到云服务器的详细流程的文章就介绍到这了,更多相关pycharm部署django到云服务器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
基于Python的身份证号码自动生成程序
Aug 15 Python
Python中使用第三方库xlutils来追加写入Excel文件示例
Apr 05 Python
python实现反转部分单向链表
Sep 27 Python
python语言基本语句用法总结
Jun 11 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
python使用requests.session模拟登录
Aug 09 Python
在django-xadmin中APScheduler的启动初始化实例
Nov 15 Python
pytorch逐元素比较tensor大小实例
Jan 03 Python
pytorch查看通道数 维数 尺寸大小方式
May 26 Python
Python json解析库jsonpath原理及使用示例
Nov 25 Python
用python修改excel表某一列内容的操作方法
Jun 11 Python
Python 键盘事件详解
Nov 11 Python
Python快速实现一键抠图功能的全过程
总结python多进程multiprocessing的相关知识
Jun 29 #Python
python 字典和列表嵌套用法详解
Jun 29 #Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
5行Python代码实现一键批量扣图
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
python geopandas读取、创建shapefile文件的方法
You might like
Yii框架登录流程分析
2014/12/03 PHP
php表单处理操作
2017/11/16 PHP
js类后台管理菜单类-MenuSwitch
2007/09/12 Javascript
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
Js日期选择自动填充到输入框(界面漂亮兼容火狐)
2013/08/02 Javascript
javascript中如何处理引号编码"
2013/08/15 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
jquery validate demo 基础
2015/10/29 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
新年快乐! javascript实现超级炫酷的3D烟花特效
2019/01/30 Javascript
layui的表单验证支持ajax判断用户名是否重复的实例
2019/09/06 Javascript
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
python使用socket进行简单网络连接的方法
2015/04/29 Python
python绘图方法实例入门
2015/05/19 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python上下文管理器全实例详解
2019/11/12 Python
python matplotlib 画dataframe的时间序列图实例
2019/11/20 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
Python如何获取文件路径/目录
2020/09/22 Python
解决python的空格和tab混淆而报错的问题
2021/02/26 Python
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
美团网旗下网上订餐平台:美团外卖
2020/03/05 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
酒吧副总经理岗位职责
2013/12/10 职场文书
迎新春趣味活动方案
2014/08/24 职场文书
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
2015年度企业工作总结
2015/05/21 职场文书