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通过zlib实现压缩与解压字符串的方法
Nov 19 Python
Python中的元类编程入门指引
Apr 15 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
详谈Python高阶函数与函数装饰器(推荐)
Sep 30 Python
详解Django中间件执行顺序
Jul 16 Python
python3使用腾讯企业邮箱发送邮件的实例
Jun 28 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
Python中Subprocess的不同函数解析
Dec 10 Python
python scrapy重复执行实现代码详解
Dec 28 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Python使用sys.exc_info()方法获取异常信息
Jul 23 Python
Python快速实现一键抠图功能的全过程
总结python多进程multiprocessing的相关知识
Jun 29 #Python
python 字典和列表嵌套用法详解
Jun 29 #Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
5行Python代码实现一键批量扣图
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
python geopandas读取、创建shapefile文件的方法
You might like
解析PHP高效率写法(详解原因)
2013/06/20 PHP
Laravel框架表单验证详解
2014/09/04 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
基于Web标准的UI组件 — 树状菜单(2)
2006/09/18 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
Jquery 分页插件之Jquery Pagination
2015/08/25 Javascript
jQuery+ajax实现滚动到页面底部自动加载图文列表效果(类似图片懒加载)
2016/06/07 Javascript
Vue实现动态响应数据变化
2017/04/28 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
TypeScript基础入门教程之三重斜线指令详解
2018/10/22 Javascript
微信 jssdk 签名错误invalid signature的解决方法
2019/01/14 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
2019/11/09 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[03:02]2020完美世界城市挑战赛(秋季赛)总决赛回顾
2021/03/11 DOTA
Python入门篇之文件
2014/10/20 Python
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
python3.5仿微软计算器程序
2020/03/30 Python
python实现猜拳小游戏
2020/04/05 Python
下载官网python并安装的步骤详解
2019/10/12 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
艺术系大学生毕业个人自我评价
2013/09/19 职场文书
高一历史教学反思
2014/01/13 职场文书
房屋租赁意向书
2014/04/01 职场文书
医学专业自荐信
2014/06/14 职场文书
喋血孤城观后感
2015/06/08 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP