python接口部署到腾讯云服务器

最近需要在腾讯云服务器上部署接口,由于是第一次接触服务器,同时也是第一次写接口(谁让我本科期间专业课大作业划水了。。。),因此在这里记录一下我遇到的问题以及解决方法。

一、服务器部署环境

我租的服务器是腾讯云服务器,从网上找视频才知道登录方法,首先要找到“实例”部分,然后在自己已经购买的服务器那里点击登录,一般会要求扫码,可以设置为不需要扫码验证,登录之后会跳转到腾讯云OrcaTerm上面,这个应该连接是腾讯云服务器专用的平台,然后会发现[root@xxx ~]#,这就意味着已经成功登录了,腾讯云服务器是centos系统,这点后面还会说到。

注意,现在登录的是root用户,我一开始没关注这一点,直接在root用户下面开始安装anaconda之类的应用,但是我导要求我尽量在普通用户下面进行调试,只有必要的时候才能sudo root的权限,于是后来之好全部删掉,然后su到普通用户部署环境。

二、普通用户的ls、sudo等命令不起作用

这时候出现了新的问题,su到普通用户和再su到root都没有问题,但是在普通用户下面的sudo、ls、mkdir等最基础的命令都不能执行,输入sudo命令输完密码后就显示Sorry,try again,根据网上的提示更改了/etc/sodoer文件,在里面加入了xxx  ALL=(ALL)  ALL也不行,经过导师提醒,决定更改.bashrc文件,但是因为我曾经下载anaconda的时候已经更改过.bashrc文件,删去anaconda之后.bashrc文件基本上没什么东西了,于是从/etc/skel/下面复制过来一份原始的.bashrc文件

cp /etc/skel/.bashrc  ~/

之后再进行更改,具体见下面https://blog.csdn.net/haockl/article/details/103780952

但是我遇到了一些问题,我更改的.bashrc文件在每次重新登陆服务器之后里面添加的路径就又没有了,我就只能每次在重新登陆之后进入/etc文件夹source ./profile文件,而且有时候source一次还不行,连续source好几次才可以起效,虽然有点麻烦,但是能用就行吧。

三、下载anaconda

这个我比较有经验了,su到普通用户,使用wget命令访问anaconda官网的下载链接,下载还是很快的,一开始我使用清华源的链接,但是没有成功,不知道为什么。

之后就按照网上的链接安装anaconda。

四、下载包

不知道为什么,我登录的腾讯云服务器总是掉线,每次都只能重新登陆,这样就又重新回到没有任何操作的时候,在pip软件包的时候更是这样,动不动就掉线,很长时间都下不下来东西,后来就开始尝试清华源,然后速度快到飞起,很后悔一开始没有直接尝试。

还有就是,有的软件包pip很慢,但是使用conda反而会快一些,比如pyarrow包,我自己使用pip下载根本下不下来,看到网上有人说别尝试pip install prarrow,使用下面这个命令:

conda install -c conda-forge pyarrow

果然很快就下载下来了。

在运行video那个项目的时候,因为要调用cv2,我的环境不能支持,报下面的错误:

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

但是网上都是说的Ubuntu系统下的解决方案:

apt-get update
apt-get install libgl1-mesa-glx

我把apt-get命令换成了yum,但是还是不行,还好在网上看到了下面的命令:

yum install mesa-libGL

成功了,我还看到有一篇文章也在讲这个,附在这里:https://blog.csdn.net/qq_50195602/article/details/124188467

五、接口部署到服务器

先涉及到文件的上传,我是只上传了训练好的模型和运行代码,以及包含html文件的template文件夹,腾讯云服务器在使用页面上的SFTP上传文件的时候有一个限制,就是文件必须在200MB以下,我训练的其中一个模型超过了这个限制,于是使用scp命令,但是我犯了一个错误,我是在服务器的终端运行的这行代码,于是服务器就一直提醒我找不到文件,直到n分钟之后,我突然意识到,这个命令应该在本地的终端运行。

上传之后修改文件的权限,否则可能无法运行。

在本地调试的时候,因为app.run()的时候使用的是本机的host127.0.0.1,但是部署到服务器上之后运行没有办法显示我自己写的前端html界面,也就根本接收不到输入的数据。

后来我把本机host改成服务器内网的IP,还是一样,改成外网IP之后,直接显示Address already in use。

后来请教一位同学,他说是因为前后端没有分离,我就又去恶补前后端的知识,但是没怎么看懂,涉及到什么vue框架啥的,还好我看到了下面的博客:在服务器部署一个可被外网访问的flask示例

我自己的代码改动只有下面这些:

from gevent import pywsgi

……

if __name__=='__main__':
    server = pywsgi.WSGIServer(('0.0.0.0',8080),app)
    server.serve_forever()

这样在服务器上运行api.py代码的时候就可以使用浏览器通过公网IP地址访问了。

七、结果

submit之后返回的结果:

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将ET框架部署腾讯云服务器,可以按照以下步骤进行操作: 1. 购买云服务器:首先,在腾讯云平台上购买一台适合的云服务器,可以选择按需付费或预付费的方式。 2. 远程连接服务器:使用SSH工具(如Xshell或PuTTY)远程连接到你的云服务器,确保已经获得了服务器的root权限。 3. 安装依赖环境:根据ET框架的要求,在服务器上安装所需的运行环境,如Python、MySQL、Redis等。可以使用命令行工具或包管理器(如apt或yum)来安装这些依赖。 4. 下载ET框架:在服务器上使用命令行工具,如wget或git,将ET框架的源代码下载到指定的文件夹中。 5. 配置ET框架:在ET框架的配置文件中,根据自己的需求设置相关参数,如数据库连接信息、日志路径等。 6. 启动ET框架:使用命令行工具进入到ET框架的目录,并执行启动命令,如python main.py或sh start.sh。 7. 配置服务器访问权限:为了能够从外部访问到ET框架提供的服务,需要在服务器的安全组规则中添加相应的端口和协议,并将访问方式设置为允许。 8. 域名绑定:如果需要使用域名来访问ET框架,可以在腾讯云的DNS解析服务中,将域名和服务器的IP地址进行绑定。 9. 监控和维护:定期监控服务器的运行状态和性能状况,保持系统的稳定性和安全性。同时,及时更新ET框架和依赖环境的版本,以获取最新的功能和修复漏洞。 总结:部署ET框架到腾讯云服务器需要购买服务器、安装依赖环境、下载ET框架、配置框架和服务器、启动框架、配置访问权限、域名绑定、监控和维护等步骤。这些步骤能够确保ET框架能够在腾讯云服务器上正常运行,并通过互联网提供服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值