Pytharm通过SSH远程链接服务器上传项目代码

前言

Python开发后发服务可以使用Tornado,Tornado是一个Python Web框架和异步网络库,最初由FriendFeed开发。通过使用非阻塞网络I / O,Tornado可以扩展到成千上万的开放连接,使其非常适合 长时间轮询, WebSocket和其他需要与每个用户建立长期连接的应用程序。


#coding=utf-8
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
from handlers import main

define("port", default="8000", help="Listening port", type=int)


class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
            ("/", main.IndexHandler),
            ("/explore", main.ExploreHandler),
            ("/post/(?P<post_id>[0-9]+)", main.PostHandler),
            ("/upload", main.UploadHandler)
        ]
        settings = dict(
            debug=True,
            template_path="templates",
            static_path="static"

        )
        super(Application, self).__init__(handlers, **settings)


application = Application()
if __name__ == '__main__':
    tornado.options.parse_command_line()
    application.listen(options.port)
    print("Server start on port {}".format(str(options.port)))
    tornado.ioloop.IOLoop.current().start()

以上代码就可以开启一个后台服务链接,通过本地循环地址127.0.0.1来访问了。但是项目创建好之后,我们想要把整个项目的代码上传到本地搭建的虚拟机Linux后台服务器上,然后通过本机去访问远程的web服务来模拟服务器搭建。
项目代码放在了博客的最后面,有兴趣的可以下载学习。
然后我们现在想通过Pytharm上传本地的项目到本地的虚拟服务器上面,我们可以到ubantu官网下载最新的ubantu桌面版本进行安装。这里不得不说桌面版本比没有桌面版本的好处就是安装之后不需要配置任何东西就可以和本机进行网络访问,而且默认安装的Vmware Tools,可以使用鼠标来回在屏幕切换了。
然后我们创建好账户之后,就需要使用Pytharm链接远程服务器的方式进行代码上传代服务器端。

注意:本地开发使用的pytharm版本必须是专业版的,否则没有SSH远程访问的功能。

如果你之前使用的pytharm是社区版本,那么就切换到专业版本,然后点击进入下面的页面:
在这里插入图片描述
进入这个界面,我们选择SSH interpreter,然后添加一个编译虚拟机路径。
在这里插入图片描述
选择一个远程的编译器时就需要一个远程的ip地址和账户,账户就是的Linux账户,最好是英文的,中文可能会有编码方面的错误。Linux的ip地址可以使用下面的命令来查看:

ipconfig

如果系统报错,并提示你使用iwconfig等其他的命令时,那是因为windows和Linux的网络ip查看命令不一样。
需要安装下面的一些系统插件:

sudo apt install ipmiutil
sudo apt install net-tools

安装上面的这两个系统插件就可以使用ifconfig来查看Linux服务器的Ip地址了。
如果你使用ping命令可以让本机和虚拟机Linux系统相互ping通,那么说明网络没有问题。或者你可以直接打开Linux的火狐浏览器进行查看网络。
然后我们需要关闭服务器的网络防火墙:

sudo ufw disable

然后我们就需要填写密码:
在这里插入图片描述
这里会出现密码正确的时候,但是会认证失败的情况。分析的原因有两个:

1)账户密码有问题。处理方法,坚持账户密码是否正确。
2)Linux服务器没有开启ssh远程服务导致的。处理:安装ssh远程服务,并开启服务。

第一个问题,我们细心点就可以避免。主要是第二个问题需要我们在Linux服务端安装ssh服务模块。

sudo apt-get install openssh-server
sudo apt install vim
service ssh start  //开启ssh服务

目前为止,你基本就配置好了SSH远程服务的基本配置。
然后我们需要指定一下上传的目录和远程服务器接收文件的目录。
在这里插入图片描述
第一个参数是我们远程服务用来编译项目的编译环境目录,默认是指向了本地的python编译环境目录,我们需要把它改成远程服务器的python编译目录。那么我们怎么在Linux服务器查看python的根目录呢?

whereis python

配置好目录之后,我们就可以同步本地项目代码到远程的服务器的接受目录了。
然后我们进入到项目的根目录,执行python脚本,发现报编码错误,需要指定python脚本的指定编码为utf-8.

#coding=utf-8

然后再次执行发现没有安装tornado模块,这里我们还需要在虚拟机指定一个编译器环境。使用如下命令:

mkvirtualenv -p /usr/bin/python3 pythonVm

命令的后面参数可以自定义,是虚拟环境的命名。
如果Linux告诉你找不到以上的命令,那你就需要解决:mkvirtualenv: command not found 问题解决。设置完成之后,我们就可以再次支持上面的命令搭建好服务器端的python虚拟机环境。
搭建好服务器虚拟机之后,我们可以使用pip list查看python虚拟机模块的安装情况,如果里面没有tornado模块就需要重新安装。
安装好之后,再次运行脚本,发现报一下模块找不到,报哪个模块找不到,根据提示进行安装就可以了。

sudo apt-get install python3-distutils
pip install tornado

然后我们就可以再次运行脚本,最后我们就成功在远程服务器端运行起来了我们的项目脚本,然后就可以通过本地去访问了。

注意:我们在本机上搭建虚拟机环境安装Linux服务器之后,搭建好的服务器环境,不能提供给其他的电脑进行访问,只能是本机才能访问。多台虚拟服务器之间可以相互访问。

扩展:
1)Linux服务器使用rm -rf 目录直接删除指定目录,不询问。
2)Linux编辑器退出的方式,输入exit() --》回车。
3)vim 插入代码按" i",之后就可以编辑文件。
4)vim退出的方式命令

项目代码下载传送门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值