因为 lz 本份工作和上一份工作都遇到了这个问题.相信论坛上一定也有遇到类似情况的同志.
想问一下如何解决.
ssh 远程调试的问题
本人 python 程序员.
|      1neoblackcap      2019-01-23 13:52:19 +08:00 via iPhone 为什么你们修改代码不用进版本库?不用经过部署流程就发布?生产环境 hotfix ?有点厉害啊! | 
|  |      2tomczhen      2019-01-23 13:55:56 +08:00  1 换家小公司。 当个开发+运维+客服全干工程师,别说服务器装个 GUI 跑下 IDE 调试,直接锁了服务器跑路都行。 | 
|  |      3chungzhao      2019-01-23 14:00:49 +08:00  5 https://spencerwoo.com/dowww/   -  在 Windows 上用 WSL 优雅开发  也可以考虑一下 | 
|      4luckychenhaha      2019-01-23 14:09:50 +08:00 vim 一把梭 | 
|  |      5www5070504      2019-01-23 14:11:32 +08:00 虚拟机呗 带界面的 ubuntu 不好用吗 直接在共享目录里调试 调试完了就可以从 windows 上传 | 
|  |      6zjsxwc      2019-01-23 14:14:27 +08:00 关键字:idea+sftp | 
|  |      7realkenshinji      2019-01-23 14:18:06 +08:00 不带 GUI,那就 vim+tmux 咯 | 
|  |      8yidinghe      2019-01-23 14:19:35 +08:00 自己电脑上装个 Linux 桌面不就是了,公司提供的到底是什么? | 
|      9CallMeReznov      2019-01-23 14:20:18 +08:00  1 | 
|      10axeojpwt      2019-01-23 14:25:10 +08:00 emacs 可以。 | 
|  |      11bumz      2019-01-23 14:25:58 +08:00 @CallMeReznov #9 不过为啥链接发的是过时的 fork 而不是原项目。。。 | 
|  |      12tomychen      2019-01-23 14:27:24 +08:00 大把的方法啊 win+ IDE -> push 到 linux win+ editor-> push 到 linux win+ VM-> push 到 Linux Linux Desktop -> push 到 Linux 还有终极 vim 大法 | 
|      13CallMeReznov      2019-01-23 14:31:41 +08:00 | 
|  |      14jmc891205      2019-01-23 14:44:05 +08:00 vim/emacs 呀 | 
|  |      15chinvo      2019-01-23 14:45:33 +08:00 via iPhone 你这意思是大公司就提供带 gui 的 Linux 服务器了? 要开发在本地开发,别乱搞服务器 | 
|      16quinoa42      2019-01-23 14:47:28 +08:00 ssh blabla -t tmux | 
|  |      17likuku      2019-01-23 14:50:56 +08:00 via iPhone 学一下 vim/Emacs 不碍事,如学会骑自行车 /游泳, 一劳永逸,终身受益,还可以参与 /围观 vim vs Emacs 永不完结的互殴 | 
|  |      18Chingim      2019-01-23 15:07:49 +08:00 via Android 卧槽。。。想直接搞服务器 | 
|  |      19privil      2019-01-23 15:09:03 +08:00  2 运维听了想打人……服务器装 gui | 
|  |      20ClutchBear      2019-01-23 15:10:24 +08:00  1 vagrant 了解一下 pychram 里面直接支持 vagrant 远程调试的. 启动 vagrant 后, pycharm 里面 python 解释器设置到 vagrant, 就可以了. vagrant 是操作的宿主 windows 的目录. | 
|  |      21fyibmsd      2019-01-23 15:10:30 +08:00 Xming 了解一下 | 
|  |      22F281M6Dh8DXpD1g2      2019-01-23 15:10:35 +08:00  1 wsl 那垃圾磁盘性能,能用? | 
|  |      23sonyxperia      2019-01-23 15:10:44 +08:00 公司给你什么你就用什么 除非自己开公司 | 
|  |      24expy      2019-01-23 15:13:35 +08:00 是我阅读理解做不出来么?楼主哪里提到服务器上直接操作了? | 
|  |      25pkookp8      2019-01-23 15:14:43 +08:00 via Android 世界上有三种编辑器。你说选哪种 vim emacs 其他 | 
|  |      27akafeng      2019-01-23 15:16:37 +08:00 是我理解有问题吗,线上生产环境服务器一把梭? | 
|      28boris1993      2019-01-23 15:27:00 +08:00 via Android 直接操服务器???这么牛逼的吗??? 肯定是本地真机或者虚拟机装 Linux 啊 如果给你配的开发机没有 GUI 那就找领导、IT 啥的反映一波吧 | 
|  |      29daviswei      2019-01-23 15:33:55 +08:00 办公机的硬盘上划个三五十 G 空间,自己装个 linux,然后 grub 配一下,双系统不就皆大欢喜了 | 
|      30mason961125      2019-01-23 15:35:48 +08:00 python...这不 vagrant 一把梭就完事了? | 
|  |      31yulgang      2019-01-23 15:40:05 +08:00 没太明白,服务器不装 GUI ?我们的也都不装 GUI,要调试在集成环境调。 如果确实需要在生产环境服务器上使用 GUI,可以在本地电脑上装个 x server,然后将它转发到服务器上就可以启动服务器上的图型界面的程序了,窗口出现在本地电脑上。 | 
|      32xpresslink      2019-01-23 15:41:18 +08:00 这个问题都要问还敢说是 Python 程序猿 | 
|      33xia0pia0      2019-01-23 15:46:25 +08:00 pycharm 配置远程环境运行及部署吧,应该能满足你的需求,自动 Push 代码以及运行、断点调式功能都可以的 | 
|      35ducklyl      2019-01-23 16:02:31 +08:00 服务器装 gui? gui 会占用服务器的性能,不可能这样干。 | 
|  |      36jetyang      2019-01-23 16:08:30 +08:00 ssh 登录到 Linux,Windows 上 ssh client 一大把,然后使用 vim 或 emacs 编程 | 
|  |      37xiaohanliang      2019-01-23 16:08:38 +08:00 Goland/IntelliJ/Clion -> Settings -> Build,Execution,Deployment -> Deployment ->  点击`+` 添加 SFTP server | 
|      38ivechan      2019-01-23 16:09:01 +08:00 vim 大法好~ | 
|  |      39chaleaochexist OP @yidinghe  windows 10 笔记本 和 linux 云主机. | 
|  |      40lithiumii      2019-01-23 16:34:20 +08:00 python 啊,试试用 jupyter lab 敲代码,ssh 把 web ui 转发到本地 | 
|      41zzzhbooo      2019-01-23 16:38:02 +08:00 找个 sftp gui 客户端如 FileZilla,cyberduck,在本地使用顺手的编辑器打开 linux 服务器的文件 | 
|  |      42hovenrech      2019-01-23 16:38:25 +08:00 我是这么玩的:vscode,默认 terminal 用 WSL ;需要 Linux 编译就切换到 terminal 下敲命令,需要 windows 编译就用 vscode 的 recipe (这个我只用过 latex 默认的) | 
|      43zzzhbooo      2019-01-23 16:48:09 +08:00 sftp 用到现在没遇到过代码同步错误的问题,即使公司服务器在美国,慢的时候 ssh 延迟好几秒。 使用 virtualenv 加 requirement.txt 来同步包有什么麻烦的 | 
|  |      44ranwu      2019-01-23 16:52:18 +08:00 你的笔记本操作系统换成 linux 不就行了? | 
|  |      45jdhao      2019-01-23 16:52:44 +08:00 笨办法,在 Windows 上配置和服务器一样的环境,Windows 写代码,然后传到 Linux 上。 或者直接在 Linux 上把环境配好,使用 Vim 来写代码,不过需要好好配置一番,否则写代码还是不如 IDE 那么方便。 Python 开发的话,可以参考我的配置 https://jdhao.github.io/2018/09/05/centos_nvim_install_use_guide/ ,我也是在 Linux 服务器上写代码(无 GUI,深度学习模型,必须用有 GPU 的服务器)。 | 
|      46king2014      2019-01-23 16:55:58 +08:00 vagrant 代码同步有什么问题? | 
|  |      47tabris17      2019-01-23 17:15:46 +08:00 顺路问问,VSCode 的 Language Server 远程调试究竟怎么用? | 
|  |      4866beta      2019-01-23 17:25:12 +08:00 via Android 那么你的 Windows 电脑为什么不能装 Linux 呢? | 
|  |      49chaleaochexist OP @zzzhbooo 偶尔会改包里面的源码. | 
|      50xfspace      2019-01-23 17:40:50 +08:00 via Android 选择题 上 Linux 换 MacOS | 
|  |      51chaleaochexist OP @king2014 vagrant 本质还是一个 virtualbox.我拍脑袋猜也是 ssh 方式 调试吧? | 
|      52zzzhbooo      2019-01-23 17:57:18 +08:00 @chaleaochexist 如果改了源码那这个包就相当于是你自己的包了,需要自己进行管理维护,和 pip 没有联系了 | 
|  |      53baicheng10      2019-01-23 18:01:40 +08:00 1 再买一台笔记本装 linux 2 手中笔记本搞个双系统 3 手中笔记本干掉 WIN 装 LINUX | 
|  |      54Asan      2019-01-23 19:29:48 +08:00 via Android 公司不配 Mac,我想在 Mac 上敲代码,然后我就用了自己的 Mac。这事儿有那么难吗?你自己在本儿上装个有 GUI 的 Linux 妥妥的。 | 
|  |      55youngxu      2019-01-23 19:32:03 +08:00 via Android 自己的需求,自己买电脑 | 
|      56weyou      2019-01-23 19:37:52 +08:00 via Android 服务器上安装 samba,共享目录映射到本地磁盘,跟在本地开发没啥两样 | 
|      57mason961125      2019-01-23 20:22:14 +08:00 via iPhone @chaleaochexist vagrant 是直接把你本地的目录映射过去的,所以哪里有复制的问题? | 
|      58xydche      2019-01-23 20:36:32 +08:00 via Android hyper-v? | 
|      59sunzongzheng      2019-01-23 21:28:34 +08:00 给你的笔记本不是随便你自己装系统? | 
|      61king2014      2019-01-23 22:37:57 +08:00 via Android @chaleaochexist 有文件共享映射,wondows 下直接调试 windows 下文件代码,浏览器直接显示效果,不需要进 ssh 到系统 | 
|  |      62scriptB0y      2019-01-23 22:39:08 +08:00 我只用 TUI 哈哈,我所有的开发工具都是 TUI 的。 | 
|  |      63sinxccc      2019-01-23 23:29:20 +08:00 呃,方法多的是啊… 1. 如果你能习惯 TUI 的话,ssh/mosh 到服务器上,然后 tmux/screen 外加 VIM/Emacs 随便你组合 2. 如果你能习惯开发工具在 Windows 上的移植版本的话,可以考虑 Emacs + tramp、share nfs/samba 分区的方式 3. 如果你就是想用 Linux 上的 GUI 工具,但是不纠结 WM 的话,可以 ssh X forwarding 或者 NoMachine 4. 如果你就是想用 Linux 上的 GUI 工具,而且希望连 WM 一起用的话,可以 VNC/NoMachine,ssh X forwarding 也能做到就是别扭了点。 | 
|  |      64Trim21      2019-01-24 00:32:17 +08:00 via Android pycharm 远程调试运行基本跟本机体验一样啊,虽然本质上还是 ssh … | 
|  |      65Trim21      2019-01-24 00:40:44 +08:00 via Android 顺便我记得如果有对应文件的写权限 pycharm 是可以直接改 pip 安装的第三方库的(用转到定义功能,跳到对应文件之后) | 
|  |      66msg7086      2019-01-24 01:06:02 +08:00  1 关于主题的问题上面说了很多了我就不多说了。 我只想问,上面那么多层楼是怎么脑补出“服务器”这三个字的,或者“生产服务器”这五个字的? | 
|      67jorneyr      2019-01-24 08:07:26 +08:00 如果只是代码同步的话非常简单,搭建一个 git 私服,自己再写一个简单的 Socket 通讯程序,再创建几个 alias 命令,修改代码后执行命令:git 提交 push 到服务器,然后 Socket 通知编译运行端更新代码,编译端实时收到消息后执行 git 命令下载代码,执行编译命令,然后运行程序。 | 
|      68dychenyi      2019-01-24 09:20:42 +08:00 楼主估计不熟悉 vim。  不熟 vim 的话那么笔记本配置好就装 vm+gui linux。 或者自己带电脑装 gui linux。 解了。 | 
|  |      69ClutchBear      2019-01-24 09:43:27 +08:00  1 vagrant 不是同步代码的, win 系统下就不安装 python. 所有开发都在 vagrant 里面, 哪里来的第三方库同步的问题. | 
|  |      70XxxxD      2019-01-24 10:20:42 +08:00 1,在来个电脑装 linux 2,window 上再装个 linux,我记得 win10 好像支持这个 | 
|      71rebackhua      2019-01-24 10:43:41 +08:00 linux samba 共享,windows mount 直接 gui 编辑,运行用 ssh | 
|  |      72yoshiyuki      2019-01-24 10:59:19 +08:00 @neoblackcap 并没有文字说楼主公司提供的机器就是生产环境 | 
|  |      73qiukun      2019-01-24 12:18:40 +08:00 同步很麻烦,不过如果加一个约束,一次复制到本地,然后只在本地编辑,单向上传到服务器,就还行,textmate jetbrains' IDEs 都有相关功能。远程调试问题倒不大。 | 
|  |      74libook      2019-01-24 12:50:38 +08:00 如果 windows 机器是台式机,可以装虚拟机,免疫各种驱动问题。我曾经有一年多的时间是 Win10+VirtualBox+Arch,上班时间全屏办公,下班时间暂停虚拟机打游戏。。。 Windows 上可以用 Cygwin 装 XServer,我现在用 XServer 跑 WSL 的 GUI,不过不用于工作,只用于日常使用一些小工具,因为 WSL 的性能不是很好,跑重型 IDE 可能压力会比较大(我没试过)。 X 是可以在网络上用的,也就是说,你有一台 Linux 机器,可以直接把 GUI 传输到 Windows 机器上的 XServer 上展示,理论上可行,性能可能会比 WSL 好很多。https://askubuntu.com/questions/203173/run-application-on-local-machine-and-show-gui-on-remote-display 或者 VNC 也可以,简单方便,就是得找个顺手的 VNC 客户端。 X 和 VNC 原理不一样,X 是直接把 GUI 对象传递到 XService 上,由 XServer 来决定如何布局和展示; VNC 是先在本地渲染好界面,再投屏到远程客户端上; X 是 Linux 机主动推送到 Windows 机上,VNC 是 Windows 机主动去 Linux 上取画面。 | 
|  |      75tourist2018      2019-01-24 13:03:54 +08:00 macOS or 虚拟机 | 
|  |      76fy      2019-01-24 13:40:34 +08:00 把自己笔记本安装成 Linux,完事 | 
|  |      77chaleaochexist OP @ClutchBear 你好,所以, 1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗? windows 宿主机里面什么都不需要了. 2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行? | 
|  |      78chaleaochexist OP @mason961125  @king2014 @mason961125 你好,所以, 1. 我们的 mysql server redis 等等也可以放到 vagrant 当中是吗? windows 宿主机里面什么都不需要了. 2. 我们 windows 中.只有项目代码.但是项目依赖的三方代码(就譬如 django 好了).我想在 pycharm 中直接修改 django,请问是否可行? | 
|  |      79ClutchBear      2019-02-28 20:39:16 +08:00  1 @chaleaochexist #77  1: windows 宿主机只有一个 pycharm ide 而已, 当然代码也存到 windows 硬盘里面 2: 只要是项目代码里面有的都可以修改, 你说 python 目录里面 lib 的肯定需要 ssh 进入虚拟机修改 | 
|      80impressioncr      2019-03-26 18:00:29 +08:00 https://github.com/codercom/code-server 服务器上运行 vs code |