Python远程开发环境部署与调试过程图解
作者:sunweiye 发布时间:2023-06-07 08:10:40
这篇文章主要介绍了Python远程开发环境部署与调试过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一、下载相应开发工具
Pycharm :下载地址
二、部署开发机
一般在工作过程中,开发环境并不是本地环境,而是指在开发机;因为,有很多依赖本地部署非常麻烦,而开发机中则内置了很多相关的服务
三、代码自动化部署
由于我们在本地进行代码编辑、在开发机中进行代码的运行及调试,因此,需要一种很方便的方式进行代码的远程自动化部署Pycharm 基于SFTP 的自动化部署
Pycharm 中集成了基于SFTP的自动化部署方案,可以实时将改动的代码部署于线上服务器。
Add Server
配置路径:Tools -> Deployment -> Configuration -> Add (左上角加号) : Type 选择SFTP
Connection
说明:
SFTP host :开发给的IP
Root path :当前代码及依赖的架包等共同的父目录(在头条,源代码一般部署在/opt/tiger 目录下,请确保当前的用户在该目录拥有读写权限)
User name :登录开发集的用户名
Auth type:使用Key pair 可以很方便的进行登录Mapping
Deloyment
path:源码上传到服务器时的目录因为在Configuration 中我们已经配置了Root path,因此,此处的Deloyment path 选择相对的根目录即可配置自动上传
Tools -> Deployment -> Automatic Upload(always) 即可自动将修改的代码上传至服务器中
说明:点击Upload to *** 即可将当前代码手动上传至开发机
四、远程调试环境
现在我们的代码在开发机中运行,在开发过程中,我们需要对我们开发的代码进行高效的调试,检查代码逻辑的正确性。远程调试方法有两种:远程调试 和 查看Log远程Debug的有点在于将开发机当做本地环境,可以实时跟踪检查点的数据结果、实时查看日志配置Project Interpreter
配置远程服务器
Preference -> Project -> Project Interpreter -> Add -> SSH Interpreter -> Exsiting server configuration由于我们在之前已经配置了Deployment Configuration Connection ,因此只要选择对应的Deployment Configuration即可
配置Interpreter
Interpreter:在下一步中选择对应的python执行器,由于头条真对MySQLdb等做了服务发现等相关的修改,该修改后的架包放置于:/opt/tiger/ss_lib/python_package/bin/python 下,因此,可以选择该Python执行器作为Interpreter 或者生成自己的envSync folders: 选择自己在服务器中存放源码的目录
五、远程运行及调试
远程运行如本地环境一般运行python程序即可配置相关依赖由于项目需要许多外部依赖,如果尽在PYTHONPATH中配置对应的路径会存在几个问题:
多个项目公用PYTHONPATH 会相互影响
无法再外部依赖内进行远程debug,因此无法了解内部运行情况
本地与远程依赖关联方法如下:
配置本地依赖
将相应的依赖下载到本地,并Add Content Root
Preference -> Project -> Project Structure -> Add Content Root 选择下载到本地的依赖
依赖远程关联由于大部分的依赖在/opt/tiger 下,因此不需要下载;如果该目录下不存在,则可以选择从git中下载,一般存在目录都会放在/opt/tiger 下
Path mapping
在Run -> Edit Configurations 下配置对应的Path mapping,配置依赖的本地和远程地址即可。
现在就可以像在本地一样debug 你的代码了!!!
来源:https://www.cnblogs.com/sunweiye/p/12003640.html


猜你喜欢
- python监控某个进程内存测试场景:某个客户端程序长时间运行后存在内存泄漏问题,现在开发解决了需要去验证这个问题是否还存在,并要求出具相应
- 准备工作(接上篇文章的示例也可以):1. 在index.js文件中引入任一js文件import sum from './sum
- 目录一、概念描述二、序列的可迭代性三、经典的迭代器模式四、生成器也是迭代器五、实现惰性迭代器六、使用生成器表达式简化惰性迭代器总结一、概念描
- CocosCreator版本:2.4.2jszip的实际项目应用游戏中有大量配置的情况下,文件会变得非常大,所以有些游戏会采用zip包压缩解
- 看了很多网上的方法,写入文件后打开文件看确实不再是乱码,但是从文件中读入json时发现了乱码,可能是读文件默认的编码格式不对。下面读写方法可
- 简介SSH,Secure Shell,安全外壳协议,用于远程登录会话SFTP,Secret File Transfer Protocol,安
- 建议先看vue瀑布流组件上拉加载更多再来食用本文,如果直接想看源码文末就是~文末新增组件优化,之所以没有删优化前的代码是想让以后自己还能看到
- 一、发送消息import smtplibfrom email.mime.text import MIMETextfrom email.hea
- 现如今,各个国家交流密切,通过翻译使我们打破了语言壁垒,而翻译在互联网上的存在也尤为普遍。python中执行翻译操作的包是translate
- 前言不管是做开发还是做过网站的朋友们,应该对于User Agent一点都不陌生,User Agent 中文名为用户代理,简称 UA,它是一个
- 近日在做门户的用户评论时,好长时间没有用jquery了正好用一下,没想到偷工用了post方法去处理ajax回调的json数据,死活取不到,后
- 虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成。这样,就需要用python来调用c的代码了具体流程:c编写相关函数 ,编
- 最简单、原始的TCP通信demo服务端Http请求:import socket# 创建一个servicesockeserviceSocket
- 监听服务的信号,实现平滑启动,linux信号说明package main import ("context""
- 1.创建应用django-admin startproject cloudmscd cloudmspython manage.py star
- 问题环境依赖OS: CentOS 7.2 Python 3.5问题提出在运行一个Python程序之时,在调用sqlite之时,碰到如下的错误
- 首先是抓包,使用scapy模块,sniff()函数 在其中参数为本地文件路径时,操作为打开本地文件若参数为BPF过滤规则和回调函数,则进行S
- 前言由于学校科技立项的项目需要实现Android App端与PHP Web端的简单数据交互的实现,当前场景是Web端使用的是MySql数据库
- 关于Python 黑魔法 metaclass 的两种极端观点:这种特性太牛逼了,是无所不能的阿拉丁神灯,必须找机会用上才能显示自己的 Pyt
- 用于绘制直线的line函数;用于绘制椭圆的ellipse函数;用于绘制矩形的rectangle函数;用于绘制圆的circle函数;用于绘制填