一、下载相应开发工具

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 或者生成自己的env
Sync folders: 选择自己在服务器中存放源码的目录

五、远程运行及调试

远程运行
如本地环境一般运行python程序即可
配置相关依赖
由于项目需要许多外部依赖,如果尽在PYTHONPATH中配置对应的路径会存在几个问题:
  1. 多个项目公用PYTHONPATH 会相互影响
  1. 无法再外部依赖内进行远程debug,因此无法了解内部运行情况
本地与远程依赖关联方法如下:
配置本地依赖
将相应的依赖下载到本地,并Add Content Root
Preference -> Project -> Project Structure -> Add Content Root 选择下载到本地的依赖
依赖远程关联
由于大部分的依赖在/opt/tiger 下,因此不需要下载;如果该目录下不存在,则可以选择从git中下载,一般存在目录都会放在/opt/tiger 下
Path mapping
在Run -> Edit Configurations 下配置对应的Path mapping,配置依赖的本地和远程地址即可。
 

现在就可以像在本地一样debug 你的代码了!!!

Python 远程开发环境部署与调试的更多相关文章

  1. 西秦的ACE-Python教程 一、Python本地开发环境部署

    西秦的ACE-Python教程 一.Python本地开发环境部署       西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信   只看楼主 更多操作楼主  发表于: 10-10 ...

  2. vscode连接云服务,搭建Python远程开发

    配置Python远程开发环境前提 配置步骤 1.windows 10 开发机配置 win10 1809后支持ssh ssh-keygen -t rsa -b 4096 #会显示生成到的目录C:\Use ...

  3. Linux——Django 开发环境部署(二)python版本控制器pyenv

    python版本控制器pyenv 之前的 那篇是说明了django环境的site package完全独立出来了,但是使用的python解释器还是系统的,为了继续独立出来,甚至是达到ruby的rvm的自 ...

  4. Eclipse for Python开发环境部署

    Eclipse for Python开发环境部署 工欲善其事,必先利其器. 对开发人员来说,顺手的开发工具必定事半功倍.自学编程的小白不知道该选择那个开发工具,Eclipse作为一个功能强大且开源免费 ...

  5. pycharm连接远程python的开发环境

    一.准备工作 1.远程主机配置python的开发环境(pyenv) 2.本地windowsp安装pycharm 二.配置pycharm连接 配置运行环境:

  6. Pycharm中进行Python远程开发

    http://blog.csdn.net/pipisorry/article/details/52269952 PyCharm提供两种远程调试(Remote Debugging)的方式:    配置远 ...

  7. 【转】windows和linux中搭建python集成开发环境IDE

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  8. 一个CentOS7的开发环境部署,包括防火墙|VPN|多IP多网关|HTTP代理服务器设置等

    http://www.lenggirl.com/code/centos7.html layout: post title: "一个CentOS7的开发环境部署,包括防火墙|VPN|HTTP代 ...

  9. windows和linux在建筑python集成开发环境IDE

    http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...

随机推荐

  1. sqli-labs 1-22关

    Page-1(Basic Challenges) Less 1-4 Less-(1-4)是最常规的SQL查询,分别采用单引号闭合.无引号.括号单引号闭合.括号双引号闭合,没有过滤:可以采用and '1 ...

  2. mysql悬案 之 为什么用docker启动的mysql配置文件不生效

    文章目录 故事前景 查看docker启动时挂载了哪些目录 使用相同镜像启动一个mysql 新建一个目录用来存放容器内的mysql配置文件 复制容器内的mysql配置文件到本地 查看mysql配置文件目 ...

  3. Java线程池进阶

    线程池是日常开发中常用的技术,使用也非常简单,不过想使用好线程池也不是件容易的事,开发者需要不断探索底层的实现原理,才能在不同的场景中选择合适的策略,最大程度发挥线程池的作用以及避免踩坑. 一.线程池 ...

  4. C#CancellationToken/CancellationTokenSource-取消令牌/取消令牌源 CT/CTS

    详细情况:https://www.cnblogs.com/wucy/p/15128365.html 背景 为什么引入取消令牌? Thread.abort()方法会破坏同步锁中代码的原子逻辑,破坏锁的作 ...

  5. C# init用法

    init是什么意思? init就 modreq([System.Runtime]System.Runtime.CompilerServices.IsExternalInit) 类型的缩写 modreq ...

  6. bool? int?等可为空的数值类型的运算 三值逻辑

    算术运算:(+,-,*,/)时,只要一个为null,则结果为null. 比较运算符: <.>.<= 和 >=,也是如此.如果一个或全部两个操作数都为 null,则结果为 fal ...

  7. 无法打开备份设备,出现操作系统错误 5(拒绝访问)(sql server备份)

    问题:无法打开备份设备 .出现操作系统错误 5(拒绝访问) 原因:你用sqlserver进行备份的时候,必须要是完整的路径,操作sqlserver的和磁盘有关的路径都必须要到文件名这一层. 解决方案: ...

  8. Linux 组网入门(转)

    转至:https://blog.csdn.net/cuijiao1893/article/details/100397875 Linux 组网入门(转)[@more@]WEB 服务器 现在在Inter ...

  9. 微信小程序使用weui扩展组件踩坑

    最近在做微信小程序,引入weui的时候踩坑了好久,这里记录一下遇到的问题. 微信官方文档给了两种weui引入方式: 通过 useExtendedLib 扩展库 的方式引入,这种方式引入的组件将不会计入 ...

  10. 《破碎的残阳,我们逆光》连载小说- HashMap剖析

    破碎的残阳,我们逆光[连载小说]- HashMap剖析 "行到水穷处,坐看云起时"        前言: 偶尔翻阅了自己当时高中时代写的日志,发现了几篇自己多年未打开的自写小说草本 ...