一、云服务器基本配置

1、注册华为云账号,完成实名认证。

2、首先,利用新用户优惠,购买了一年的HECS(2vCPUs | 4GiB | 带宽 2 Mbit/s,Huawei Cloud EulerOS 2.0)

3、首次使用需要重置密码(即root账号的密码)并重启

4、通过SSH工具远程登录(linux的密码输入不显示,输入完直接回车即可)

(工具:MobaXterm_Personal_22.1,通过SSH建立session)

5、不建议按照提示执行sh脚本,因为会限制权限,非常不利于后期的操作。但可以考虑清空/etc/motd文件。

注册新用户:(注:user_name可替换为自己设置的用户名)

useradd user_name
passwd user_name

6、根据官方提示,执行命令,安装Agent,便于监控。

7、断开链接,重新用管理员账户登录。

使用下列命令查看系统信息

cat /proc/version

至此,云服务器的基本配置已完成。

二、环境搭建

(一)conda环境

1、上传安装脚本

在https://docs.conda.io/en/latest/miniconda.html选择合适的版本,笔者选择Miniconda3-latest-Linux-x86_64.sh,下载到本机。

选择miniconda是因为我们只需要最基本的conda环境即可,而Anaconda包含大量科学包与软件,但在生产环境中并不重要,因为是直接从开发环境进行迁移部署。

在普通用户目录(/home/user_name)下,执行

mkdir -p downfile/other

建立两级文件夹,来存放上传的文件。

将sh文件上传到新建的目录下。(通过MobaXterm的可视化按钮Upload)

2、执行一键部署

在other目录下,执行一键部署脚本:

sh Miniconda3-latest-Linux-x86_64.sh

然后是一个会打印license协议内容,回车即可;接受yes。

选择安装目录,默认为用户目录下(即/home/user_name/miniconda3,也可依据自身要求根据提示进行修改),然后安装,再输入yes初始化conda。

3、修改终端设置

断开终端,再次进入,发现默认激活的是伪终端,会在 [] 的前面带有 (base)。执行:

conda config --set auto_activate_base false

再次连接时,默认终端没有就不是伪终端 (base) 了。

4、调试conda环境

执行下列命令,进入conda环境,即伪终端 (base) 。

conda activate

查看conda版本和Python版本:

conda -V
python -V

输出版本号则安装并运行成功。

conda可以切换国内镜像源:

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

至此,miniconda安装完成。

(二)Python环境

0、环境迁移说明

环境迁移可大致分为以下几种情况:

序号

工具

文件

特点

1

pip

requirements.txt

涵盖范围全

2

conda

requirements.txt

使用conda下载的包

3

conda

environment.yml

不针对特定操作系统,包含使用conda和使用pip安装的软件包

4

conda-pack

XXX.tar.gz

离线迁移环境,直接打包环境

5

pip

requirements.txt

相关的离线包

离线迁移环境,使用离线安装包进行安装

在开发时,使用pip与conda下载的包不同,容易造成环境混乱。

典型代表为,当使用第4种方法迁移环境时,会发生缺少使用pip下载的包的情况,故在离线安装下推荐第5种方法。

由于本次环境迁移在联网的云服务器进行,故采用第1种方法。

1、本机环境打包

将本机上的环境进行打包,导出requirements.txt文件。

在本机通过cd命令到一个文件夹下:

cd /d C:\Users\悠逸\Desktop\演示

然后进入开发使用的conda环境(pywebio),使用pip,在工作目录下生成当前conda环境的requirements.txt文件。

activate pywebio
pip freeze > requirements.txt

然后在“演示”文件夹下,生成requirements.txt文件。

2、建立虚拟环境

在普通用户目录(/home/user_name)下建立两级文件夹(/python_env/subject_name)来存放项目文件,将requirements.txt文件上传到该目录下。(subject_name一般为为项目名称)

执行:

conda create --name py39_som python=3.9

加载完后输入“y”确认,建立以Python3.9为基础的名为“py39_som”的虚拟环境。

3、安装Package

执行命令,进入虚拟环境:

conda activate py39_som

执行命令,进入项目目录:

cd /home/user_name/python_env/subject_name/

可以先将pip换源,否则可能由于网速原因安装第三方包失败:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

执行命令,安装Python包:

pip install -r requirements.txt

稍等片刻,安装完毕。

可执行以下命令查看当前已安装的环境信息。

conda list

至此,所需基于conda的Python环境搭建完成。

三、部署项目

1、上传项目文件

将包含py文件和静态文件的项目文件夹“main_app“压缩为”main_app.zip“,通过MobaXterm上传到项目目录(/home/user_name/python_env/subject_name)下,

在项目目录下,解压缩,将所有文件解压到“main_app“文件夹中,

然后进入“main_app“文件夹中,

再进入之前建好的conda环境“py39_som”。

cd /home/you_yi/python_env/subject_name/
unzip main_app.zip
cd ./main_app
conda activate py39_som

2、运行部署程序

在项目目录下、虚拟环境中,运行主程序:

python app_main.py

注意:需要打开云服务器控制台相应的端口,比如我使用的是8080,就需要在“控制台-安全组”设置入方向规则,添加放行“TCP:8080”。

此时,便可以通过在浏览器输入“http://公网IP:端口号/”访问部署的网页。

一般使用nohup启动,在后台运行:(记着进程号,方便后期kill)

nohup python app_main.py

也可以保存程序运行时输出的信息:

nohup python -u xxx.py >xxx.log 2>&1 &

nohup:不断地运行

python :运行python文件

-u:使python不启用缓冲,可以即时看到输出

xxx.log:用来保存程序运行时输出的信息

2>&1 :将错误信息重定向到标准输出

& :代表后台运行

至此,项目部署完毕。

四、拓展

1、conda常用命令

创建指定python版本的环境

conda create --name your_env_name python=3.7

列举当前所有环境

conda env list

进入某个环境

conda activate your_env_name

退出当前环境

conda deactivate 

删除某个环境

conda remove --name your_env_name --all

2、MobaXterm常用操作

(1)建立SSH连接

点击“Session”,选择“SSH”,填入IP,点击“OK”。

(2)常用操作

上一级目录、下载、上传、刷新、新建文件夹、新建文件、删除所选文件等。

右键菜单,“Copy”复制,“Paste”粘贴。

3、使用matplotlib缺失中文字体(服务器配置中文字体)

问题描述:在linux服务器中,可能没有中文字体,导致在云服务器中生成的图片,中文字体变成“□”而无法正常显示。同时,Python报错:

UserWarning: Glyph 24230 (\N{CJK UNIFIED IDEOGRAPH-5EA6}) missing from current font.

要查看系统中已经安装的字体,我们可以使用fc-list命令进行查看。如果系统中没有该命令的话,我们需要先安装相关的软件包。

(1)在root账户下,使用如下命令进行安装:

yum install -y fontconfig mkfontscale

可以发现,在安装完成后,出现了“/usr/share/fonts/”与“/usr/share/fontconfig/”文件夹

(2)查看linux已安装字体

fc-list

查看linux已安装中文字体

fc-list :lang=zh

(3)安装中文字体

Windows系统中的ttf字体是可以在Linux上使用的,我们可以使用Windows现成的字库,上传到服务器上,执行相关命令即可。

建立“/usr/share/fonts/zh_fonts”来存放中文字体。

mkdir -p /usr/share/fonts/zh_fonts

通常,“C:\Windows\Fonts”文件夹下存放相关字体,将所需字体(simsun宋体、simhei黑体)上传到新建立的“zh_fonts”。

(4)修改字体文件权限,使所有用户可以使用

cd /usr/share/fonts/
sudo chmod -R 755 zh_fonts

并建立字体索引,更新缓存

mkfontscale
mkfontdir
fc-cache -fv

查看字体情况

fc-list :lang=zh

(5)此时我们会发现matplotlib作出的图中中文依旧无法正常显示。

接下来有几点注意:

首先,root用户无法使用conda命令,因为缺乏环境变量;

其次,matplotlib的缓存目录,位于“/home/you_yi/.cache/”,在用户文件下,而非root用户的“/root/.cache/”下。

所以,这种情况只需删除matplotlib的缓存目录(/home/you_yi/.cache/matplotlib)即可解决。

重新运行Python程序,中文显示正常。(在“/home/you_yi/.cache/”下生成了matplotlib与fontconfig的缓存目录)

4、pyecharts加载慢

默认使用https://assets.pyecharts.org/assets/这个域名下的资源文件,访问慢。

一方面,可以自行根据官方教程(https://pyecharts.org/#/zh-cn/assets_host,“进阶话题-资源引用”部分)搭建本地文件服务器。

另一方面,可以使用国内cdn进行加速:定位安装pyechats的目录“/home/you_yi/miniconda3/envs/py39_som/lib/python3.9/site-packages/pyecharts/”,编辑配置文件globals.py,修改 DEFAULT_HOST 参数为如下:

DEFAULT_HOST = "https://cdn.jsdelivr.net/gh/pyecharts/pyecharts-assets@master/assets/"

即可。

华为云HECS(云耀云服务器)部署Python项目相关推荐

  1. 腾讯云服务器部署python项目(阿里云通用)

    腾讯云服务器宝塔面板部署python项目(阿里云通用) 老师留的一项web作业完成的时候踩了很多坑,所以出个教程,大家一起学习进步. ## 购买云服务器 查看了腾讯云和阿里云的学生服务器的相关活动,为 ...

  2. 云服务器运行python程序_云服务器部署python项目

    发现python的一个识别验证码识别模块 muggle-ocr(https://pypi.org/project/muggle-ocr/) 成功率还是可以的,打算把把部署到云服务器上 这里记录一下部署 ...

  3. 13.云服务器部署springboot项目

    标题: 云服务器实战模拟网站被DDOS攻击?到底应该如何防御? 课程内容:1.云服务器部署项目 被人攻击了怎么办?2.DNS是如何解析域名的?3.一级.二级.三级域名区别4.什么是DNS轮询策略?如何 ...

  4. 云服务器部署springboot项目

    相关概念 物理机器 -----项目 1万  专线(公网的ip---固定ip) 100兆 3万 家用带宽与专线区别? 家用带宽 电信 2000/年 1000兆  上行/下行 不对等  下载1000兆 上 ...

  5. win系统的阿里云服务器部署IDEASpringBoot项目保姆级教程

    win系统的阿里云服务器部署SpringBoot项目保姆级教程 前言 配置阿里云服务器 配置环境 环境配置中的坑 还有别的坑的话,私信我我补充......毕竟配置是最基本的,还想咋样... jar包导 ...

  6. 阿里云轻量云服务器部署java项目

    阿里云轻量云服务器部署java项目 前言:阿里云最新推出了轻量云服务器,说是可以简化配置.看重他是因为带宽明显提升.就继续照着ecs服务器的方式安装了一系列环境.系统是阿里云的Centos7.3.JD ...

  7. 如何快速在东方通服务器部署web项目

    一.安装JDK,配置环境变量 二.TongWeb中间件安装部署 将TongWeb中间件绿色免安装版解压后,在TongWeb根目录下放入许可证license.dat. 注意:TongWeb解压目录不要包 ...

  8. linux 下部署Python项目

    2019-02-18  by 崔斐然 目录 一.启用ROOT账户及密码和ssh 二.安装screen实现不掉线运行程序 三.部署Python项目 四.部署项目环境 五.善后 一.启用ROOT账户及密码 ...

  9. 【Python】使用Docker部署Python项目

    用Docker部署Python项目 0.源码目录 1.编写Dockerfile文件 2.Docker根据Dockerfile文件生成Docker镜像 3.将镜像运行在Docker容器中 众所周知,同一 ...

最新文章

  1. iOS开发之使用CocoaPods更新第三方出现“target overrides the `OTHER_LDFLAGS`……”问题解决方案
  2. layer的一种用法,页面多选时用地址传递值过多时,用弹出层画一个form表单,然后通过提交表单传值
  3. Django实战之增加链接
  4. Android中开发习惯
  5. 计算机原理及基础 —— 有符号类型和无符号类型
  6. hdfs user 连接_通过API访问HDFS
  7. RocketMQ消息发送之pull和push
  8. @bzoj - 3238@ [Ahoi2013]差异
  9. SAP UI5 标准应用的多语言支持 - SAP UI5 运行时语言判定机制
  10. 内存模型是怎么解决缓存一致性的
  11. html绘制波形图,JS实现波形图
  12. 微信小程序云开发教程-WXML入门-基本语法
  13. MapGIS目录的设置
  14. MyEclipse配置Tomcat 7
  15. C语言面试题汇总(持续更)
  16. matlab如何插入“埃”这个符号
  17. Wilcoxon符合秩和检验
  18. 微信公众号、订阅号、服务号、企业号的区别
  19. 最后采用加权求和的方式得到样本的_论文阅读笔记《Principal characteristic networks for few-shot...
  20. windy数(数位dp)

热门文章

  1. Python学习笔记—低阶入门(已完结)
  2. OS内核以及进程间通信方式IPC
  3. 分享很不错的10个UI图标资源站
  4. CAMx空气质量模拟及污染来源解析
  5. H5-video视频播放标签-隐藏部分controls
  6. 三色旗(c/python)
  7. 影视解说怎么配音?免费配音软件分享,真人发声选择多样
  8. PG数据库同步数据到ES数据库
  9. java版商城多商家入驻商城 直播带货商城 电子商务
  10. C语言实现链表【二】带头双向循环链表