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 远程统计文件代码分享
May 14 Python
Python打包可执行文件的方法详解
Sep 19 Python
Python使用numpy产生正态分布随机数的向量或矩阵操作示例
Aug 22 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python遍历小写英文字母的方法
Jan 02 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
Aug 05 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
python在一个范围内取随机数的简单实例
Aug 16 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 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使用SOAP调用API操作示例
2018/12/25 PHP
SWFObject Flash js调用类
2008/07/08 Javascript
IE FF OPERA都可用的弹出层实现代码
2009/09/29 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
jqTransform美化表单
2015/10/10 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
详解jQuery事件
2017/01/13 Javascript
详谈ES6中的迭代器(Iterator)和生成器(Generator)
2017/07/31 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
JS和JQuery实现雪花飘落效果
2017/11/30 jQuery
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
python实现定制交互式命令行的方法
2014/07/03 Python
Python中模块与包有相同名字的处理方法
2017/05/05 Python
python将回车作为输入内容的实例
2018/06/23 Python
python实现中文文本分句的例子
2019/07/15 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
python框架flask表单实现详解
2019/11/04 Python
python logging设置level失败的解决方法
2020/02/19 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
保洁主管岗位职责
2013/11/20 职场文书
万年牢教学反思
2014/02/15 职场文书
投资合作协议书
2014/04/17 职场文书
关键在于落实心得体会
2014/09/03 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
大学毕业论文致谢词
2015/05/14 职场文书