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 05 Python
Python随机生成信用卡卡号的实现方法
May 14 Python
Pycharm学习教程(3) 代码运行调试
May 03 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
Nov 30 Python
Python爬豆瓣电影实例
Feb 23 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
Python3.5装饰器原理及应用实例详解
Apr 30 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
May 13 Python
python获取点击的坐标画图形的方法
Jul 09 Python
Python 如何批量更新已安装的库
May 26 Python
怎么快速自学python
Jun 22 Python
如何用Anaconda搭建虚拟环境并创建Django项目
Aug 02 Python
Python快速实现一键抠图功能的全过程
总结python多进程multiprocessing的相关知识
Jun 29 #Python
python 字典和列表嵌套用法详解
Jun 29 #Python
Python连接Postgres/Mysql/Mongo数据库基本操作大全
5行Python代码实现一键批量扣图
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
python geopandas读取、创建shapefile文件的方法
You might like
火影忍者:这才是千手柱间和扉间的真正死因,角都就比较搞笑了!
2020/03/10 日漫
php mysql Errcode: 28 终极解决方法
2009/07/01 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
深入分析PHP设计模式
2020/06/15 PHP
JS 类型转换常见方法小结
2010/05/31 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
2015/03/04 Javascript
jquery 中ajax执行的优先级
2015/06/22 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
Axios学习笔记之使用方法教程
2017/07/21 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
Python中zfill()方法的使用教程
2015/05/20 Python
Python爬虫中urllib库的进阶学习
2018/01/05 Python
python对html过滤处理的方法
2018/10/21 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
python根据时间获取周数代码实例
2019/09/30 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Python按照list dict key进行排序过程解析
2020/04/04 Python
Pycharm安装python库的方法
2020/11/24 Python
Pycharm配置autopep8实现流程解析
2020/11/28 Python
python中编写函数并调用的知识点总结
2021/01/13 Python
Electrolux伊莱克斯巴西商店:家用电器、小家电和配件
2018/05/23 全球购物
Boom手表官网:瑞典手表品牌,设计你的手表
2019/03/11 全球购物
大学生自我鉴定
2013/12/08 职场文书
教师旷工检讨书
2014/01/18 职场文书
二年级学生评语大全
2014/04/23 职场文书
公司车辆管理制度
2015/08/04 职场文书
2019学生会干事辞职信
2019/06/27 职场文书
Java Redisson多策略注解限流
2022/09/23 Java/Android