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